%line | %branch | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
com.ozacc.mail.impl.Cp932 |
|
|
1 | package com.ozacc.mail.impl; |
|
2 | ||
3 | import java.util.Locale; |
|
4 | ||
5 | /** |
|
6 | * The Cp932 class contains a utility method for converting Microsoft's |
|
7 | * Cp 932 into JIS. |
|
8 | * <p> |
|
9 | * <strong>Ã?:</strong> ¤³¤Î¥¯¥é¥¹¤Ïpublic¤Ç¤¹¤¬¡¢ozacc-mail library³°¤«¤é¤Ï»ÈÍѤ·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£ |
|
10 | * |
|
11 | * @author Kazuhiro Kazama |
|
12 | * @version 1.0 01/06/97 |
|
13 | * |
|
14 | * @since 1.0.2 |
|
15 | */ |
|
16 | 9 | public class Cp932 { |
17 | ||
18 | 9 | private static boolean isCp932 = false; |
19 | ||
20 | static { |
|
21 | 9 | String p = System.getProperty("iscp932"); |
22 | 9 | String os = System.getProperty("os.name"); |
23 | 9 | if (Locale.getDefault().getLanguage().equals("ja")) { |
24 | 9 | if (p != null && Boolean.getBoolean(p)) |
25 | 0 | isCp932 = true; |
26 | 9 | else if (os != null && (os.startsWith("Win"))) |
27 | 9 | isCp932 = true; |
28 | } |
|
29 | } |
|
30 | ||
31 | /* |
|
32 | * You can't use this constructor. |
|
33 | */ |
|
34 | 0 | private Cp932() {} |
35 | ||
36 | /* |
|
37 | * This method converts Cp932 to JIS. |
|
38 | */ |
|
39 | public static String toJIS(String s) { |
|
40 | ||
41 | /* commented by otsuka |
|
42 | * |
|
43 | * if (!isCp932) |
|
44 | * return s; |
|
45 | */ |
|
46 | ||
47 | 180 | StringBuffer sb = new StringBuffer(); |
48 | char c; |
|
49 | 902 | for (int i = 0; i < s.length(); i++) { |
50 | 722 | c = s.charAt(i); |
51 | ||
52 | 722 | switch (c) { |
53 | case 0xff3c: // FULLWIDTH REVERSE SOLIDUS -> |
|
54 | 0 | c = 0x005c; // REVERSE SOLIDUS |
55 | 0 | break; |
56 | case 0xff5e: // FULLWIDTH TILDE -> |
|
57 | 0 | c = 0x301c; // WAVE DASH |
58 | 0 | break; |
59 | case 0x2225: // PARALLEL TO -> |
|
60 | 0 | c = 0x2016; // DOUBLE VERTICAL LINE |
61 | 0 | break; |
62 | case 0xff0d: // FULLWIDTH HYPHEN-MINUS -> |
|
63 | 0 | c = 0x2212; // MINUS SIGN |
64 | 0 | break; |
65 | case 0xffe0: // FULLWIDTH CENT SIGN -> |
|
66 | 0 | c = 0x00a2; // CENT SIGN |
67 | 0 | break; |
68 | case 0xffe1: // FULLWIDTH POUND SIGN -> |
|
69 | 0 | c = 0x00a3; // POUND SIGN |
70 | 0 | break; |
71 | case 0xffe2: // FULLWIDTH NOT SIGN -> |
|
72 | 0 | c = 0x00ac; // NOT SIGN |
73 | break; |
|
74 | } |
|
75 | 722 | sb.append(c); |
76 | } |
|
77 | 180 | return new String(sb); |
78 | } |
|
79 | ||
80 | /* |
|
81 | * This method convert JIS to Cp932. |
|
82 | */ |
|
83 | public static String toCp932(String s) { |
|
84 | 0 | if (!isCp932) |
85 | 0 | return s; |
86 | 0 | StringBuffer sb = new StringBuffer(); |
87 | char c; |
|
88 | 0 | for (int i = 0; i < s.length(); i++) { |
89 | 0 | c = s.charAt(i); |
90 | ||
91 | 0 | switch (c) { |
92 | case 0x005c: // REVERSE SOLIDUS -> |
|
93 | 0 | c = 0xff3c; // FULLWIDTH REVERSE SOLIDUS |
94 | 0 | break; |
95 | case 0x301c: // WAVE DASH -> |
|
96 | 0 | c = 0xff5e; // FULLWIDTH TILDE |
97 | 0 | break; |
98 | case 0x2016: // DOUBLE VERTICAL LINE -> |
|
99 | 0 | c = 0x2225; // PARALLEL TO |
100 | 0 | break; |
101 | case 0x2212: // MINUS SIGN -> |
|
102 | 0 | c = 0xff0d; // FULLWIDTH HYPHEN-MINUS |
103 | 0 | break; |
104 | case 0x00a2: // CENT SIGN -> |
|
105 | 0 | c = 0xffe0; // FULLWIDTH CENT SIGN |
106 | 0 | break; |
107 | case 0x00a3: // POUND SIGN -> |
|
108 | 0 | c = 0xffe1; // FULLWIDTH POUND SIGN |
109 | 0 | break; |
110 | case 0x00ac: // NOT SIGN -> |
|
111 | 0 | c = 0xffe2; // FULLWIDTH NOT SIGN |
112 | break; |
|
113 | } |
|
114 | 0 | sb.append(c); |
115 | } |
|
116 | 0 | return new String(sb); |
117 | } |
|
118 | } |
This report is generated by jcoverage, Maven and Maven JCoverage Plugin. |