| %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. |