统计 |
blog名称:人在旅途 日志总数:175 评论数量:505 留言数量:13 访问次数:1670379 建立时间:2005年12月7日 |
生命是过客,人在旅途。奶奶是信基督教的,没啥文化,却养育了四子二女,还带过九个孙辈。老人家对生命的看法就是“人都是客人,迟早要回去的。”就以《人在旅途》来纪念她。

« | September 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | | | | |
|
公告 |
本人上传的源程序中可能引用或使用了第三方的库或程序,也可能是修改了第三方的例程甚至是源程序.所以本人上传的源程序禁止在以单纯学习为目的的任何以外场合使用,不然如果引起任何版权问题,本人不负任何责任. | |

|
本站首页 管理页面 写新日志 退出
调整中...
[Java技术]关于CHARACTER SET的范围大小 |
人在旅途 发表于 2008/5/13 13:42:21 |
JAVA中CHARACTER SET的设置和转化不当会导致乱码的出现,但即使设置和转化都正确,有些特殊的文字仍会经过转换去并转换回后表现为乱码,这是因为CHARACTER SET的范围是有大小的,从大范围CHARACTER SET转化到小范围CHARACTER SET,当然会丢失一部分文字(特殊文字).
日文方面,最大范围的CHARACTER SET是:MS932,EUC_JP_Solaris.
Shift_JIS和EUC_JP都是较小范围的CHARACTER SET
1 全角文字 あ 2 半角カナ ア 3 CP932関連 ¢ 4 NEC特殊文字 ① 5 NEC選定IBM拡張文字 ⅰ 6 IBM拡張文字 惲
■ 文字コードの種類
JISコード シフトJISコード EUCコード Unicode(UCS-2)
■ 文字コード表
JIS X 0208文字コード 01区~08区 各種記号、英数字、かな 09区~15区 未定義(機種依存) (13区 NEC拡張外字) 16区~47区 JIS第一水準漢字 48区~84区 JIS第二水準漢字 85区~94区 未定義(機種依存) (89区~92区 NEC拡張外字)
0 1 2 3 4 5 6 7 8 9 A B C D E F8740 ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ⑪ ⑫ ⑬ ⑭ ⑮ ⑯ 8750 ⑰ ⑱ ⑲ ⑳ Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅷ Ⅸ Ⅹ ㍉ 8760 ㌔ ㌢ ㍍ ㎜ ㌘ ㌧ ㌃ ㌶ ㍑ ㍗ ㌍ ㌦ ㌣ ㌫ ㍊ ㌻ 8770 ㎝ ㎞ ㎎ ㎏ ㏄ ㎡ ㍻ 8780 〝 〟 № ㏍ ℡ ㊤ ㊥ ㊦ ㊧ ㊨ ㈱ ㈲ ㈹ ㍾ ㍽ ㍼8790 ≒ ≡ ∫ ∮ ∑ √ ⊥ ∠ ∟ ⊿ ∵ ∩ ∪ 87A0 87B0 87C0 87D0 87E0 87F0
■NEC選定IBM拡張文字(0xED40 - 0xEEFC) 0 1 2 3 4 5 6 7 8 9 A B C D E FED40 纊 褜 鍈 銈 蓜 俉 炻 昱 棈 鋹 曻 彅 丨 仡 仼 伀ED50 伃 伹 佖 侒 侊 侚 侔 俍 偀 倢 俿 倞 偆 偰 偂 傔ED60 僴 僘 兊 兤 冝 冾 凬 刕 劜 劦 勀 勛 匀 匇 匤 卲 ED70 厓 厲 叝 﨎 咜 咊 咩 哿 喆 坙 坥 垬 埈 埇 﨏 ED80 塚 增 墲 夋 奓 奛 奝 奣 妤 妺 孖 寀 甯 寘 寬 尞ED90 岦 岺 峵 崧 嵓 﨑 嵂 嵭 嶸 嶹 巐 弡 弴 彧 德 忞EDA0 恝 悅 悊 惞 惕 愠 惲 愑 愷 愰 憘 戓 抦 揵 摠 撝EDB0 擎 敎 昀 昕 昻 昉 昮 昞 昤 晥 晗 晙 晴 晳 暙 暠EDC0 暲 暿 曺 朎 朗 杦 枻 桒 柀 栁 桄 棏 﨓 楨 﨔 榘EDD0 槢 樰 橫 橆 橳 橾 櫢 櫤 毖 氿 汜 沆 汯 泚 洄 涇EDE0 浯 涖 涬 淏 淸 淲 淼 渹 湜 渧 渼 溿 澈 澵 濵 瀅EDF0 瀇 瀨 炅 炫 焏 焄 煜 煆 煇 凞 燁 燾 犱 EE40 犾 猤 猪 獷 玽 珉 珖 珣 珒 琇 珵 琦 琪 琩 琮 瑢EE50 璉 璟 甁 畯 皂 皜 皞 皛 皦 益 睆 劯 砡 硎 硤 硺EE60 礰 礼 神 祥 禔 福 禛 竑 竧 靖 竫 箞 精 絈 絜 綷EE70 綠 緖 繒 罇 羡 羽 茁 荢 荿 菇 菶 葈 蒴 蕓 蕙 EE80 蕫 﨟 薰 蘒 﨡 蠇 裵 訒 訷 詹 誧 誾 諟 諸 諶 譓EE90 譿 賰 賴 贒 赶 﨣 軏 﨤 逸 遧 郞 都 鄕 鄧 釚 釗EEA0 釞 釭 釮 釤 釥 鈆 鈐 鈊 鈺 鉀 鈼 鉎 鉙 鉑 鈹 鉧EEB0 銧 鉷 鉸 鋧 鋗 鋙 鋐 﨧 鋕 鋠 鋓 錥 錡 鋻 﨨 錞EEC0 鋿 錝 錂 鍰 鍗 鎤 鏆 鏞 鏸 鐱 鑅 鑈 閒 隆 﨩 隝EED0 隯 霳 霻 靃 靍 靏 靑 靕 顗 顥 飯 飼 餧 館 馞 驎EEE0 髙 髜 魵 魲 鮏 鮱 鮻 鰀 鵰 鵫 鶴 鸙 黑 ⅰEEF0 ⅱ ⅲ ⅳ ⅴ ⅵ ⅶ ⅷ ⅸ ⅹ ¬ ¦ ' "
■IBM拡張文字(0xFA40 - 0xFC4B) 0 1 2 3 4 5 6 7 8 9 A B C D E FFA40 ⅰ ⅱ ⅲ ⅳ ⅴ ⅵ ⅶ ⅷ ⅸ ⅹ Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ ⅥFA50 Ⅶ Ⅷ Ⅸ Ⅹ ¬ ¦ ' " ㈱ № ℡ ∵ 纊 褜 鍈 銈FA60 蓜 俉 炻 昱 棈 鋹 曻 彅 丨 仡 仼 伀 伃 伹 佖 侒FA70 侊 侚 侔 俍 偀 倢 俿 倞 偆 偰 偂 傔 僴 僘 兊 FA80 兤 冝 冾 凬 刕 劜 劦 勀 勛 匀 匇 匤 卲 厓 厲 叝FA90 﨎 咜 咊 咩 哿 喆 坙 坥 垬 埈 埇 﨏 塚 增 墲 夋FAA0 奓 奛 奝 奣 妤 妺 孖 寀 甯 寘 寬 尞 岦 岺 峵 崧FAB0 嵓 﨑 嵂 嵭 嶸 嶹 巐 弡 弴 彧 德 忞 恝 悅 悊 惞FAC0 惕 愠 惲 愑 愷 愰 憘 戓 抦 揵 摠 撝 擎 敎 昀 昕FAD0 昻 昉 昮 昞 昤 晥 晗 晙 晴 晳 暙 暠 暲 暿 曺 朎FAE0 朗 杦 枻 桒 柀 栁 桄 棏 﨓 楨 﨔 榘 槢 樰 橫 橆FAF0 橳 橾 櫢 櫤 毖 氿 汜 沆 汯 泚 洄 涇 浯 FB40 涖 涬 淏 淸 淲 淼 渹 湜 渧 渼 溿 澈 澵 濵 瀅 瀇FB50 瀨 炅 炫 焏 焄 煜 煆 煇 凞 燁 燾 犱 犾 猤 猪 獷FB60 玽 珉 珖 珣 珒 琇 珵 琦 琪 琩 琮 瑢 璉 璟 甁 畯FB70 皂 皜 皞 皛 皦 益 睆 劯 砡 硎 硤 硺 礰 礼 神 FB80 祥 禔 福 禛 竑 竧 靖 竫 箞 精 絈 絜 綷 綠 緖 繒FB90 罇 羡 羽 茁 荢 荿 菇 菶 葈 蒴 蕓 蕙 蕫 﨟 薰 蘒FBA0 﨡 蠇 裵 訒 訷 詹 誧 誾 諟 諸 諶 譓 譿 賰 賴 贒FBB0 赶 﨣 軏 﨤 逸 遧 郞 都 鄕 鄧 釚 釗 釞 釭 釮 釤FBC0 釥 鈆 鈐 鈊 鈺 鉀 鈼 鉎 鉙 鉑 鈹 鉧 銧 鉷 鉸 鋧FBD0 鋗 鋙 鋐 﨧 鋕 鋠 鋓 錥 錡 鋻 﨨 錞 鋿 錝 錂 鍰FBE0 鍗 鎤 鏆 鏞 鏸 鐱 鑅 鑈 閒 隆 﨩 隝 隯 霳 霻 靃FBF0 靍 靏 靑 靕 顗 顥 飯 飼 餧 館 馞 驎 髙 FC40 髜 魵 魲 鮏 鮱 鮻 鰀 鵰 鵫 鶴 鸙 黑
注:MYSQL对有些文字不能对应,所以把文字存到MYSQL前要转化成它可对应的别的文字,取出来时再转化回去.
//save to DB(MYSQL) public static String toJIS(String s) { if (s == null) { s = ""; } StringBuffer sb = new StringBuffer(); char c; for (int i = 0; i < s.length(); i++) { c = s.charAt(i); switch (c) { case 0xff3c: // FULLWIDTH REVERSE SOLIDUS -> c = 0x005c; // REVERSE SOLIDUS break; case 0xff5e: // FULLWIDTH TILDE -> c = 0x301c; // WAVE DASH break; case 0x2225: // PARALLEL TO -> c = 0x2016; // DOUBLE VERTICAL LINE break; case 0xff0d: // FULLWIDTH HYPHEN-MINUS -> c = 0x2212; // MINUS SIGN break; case 0xffe0: // FULLWIDTH CENT SIGN -> c = 0x00a2; // CENT SIGN break; case 0xffe1: // FULLWIDTH POUND SIGN -> c = 0x00a3; // POUND SIGN break; case 0xffe2: // FULLWIDTH NOT SIGN -> c = 0x00ac; // NOT SIGN break; case 0x2015: // HORIZONTAL BAR c = 0x2014; // EM DASH break; } sb.append(c); } return new String(sb); }
//load from DB(MYSQL) public static String toCp932(String s) { if (s == null) { s = ""; } StringBuffer sb = new StringBuffer(); char c; for (int i = 0; i < s.length(); i++) { c = s.charAt(i); switch (c) { case 0x005c: // REVERSE SOLIDUS -> c = 0xff3c; // FULLWIDTH REVERSE SOLIDUS break; case 0x301c: // WAVE DASH -> c = 0xff5e; // FULLWIDTH TILDE break; case 0x2016: // DOUBLE VERTICAL LINE -> c = 0x2225; // PARALLEL TO break; case 0x2212: // MINUS SIGN -> c = 0xff0d; // FULLWIDTH HYPHEN-MINUS break; case 0x00a2: // CENT SIGN -> c = 0xffe0; // FULLWIDTH CENT SIGN break; case 0x00a3: // POUND SIGN -> c = 0xffe1; // FULLWIDTH POUND SIGN break; case 0x00ac: // NOT SIGN -> c = 0xffe2; // FULLWIDTH NOT SIGN break; case 0x2014: // EM DASH c = 0x2015; // HORIZONTAL BAR break; } sb.append(c); } return new String(sb); }
|
阅读全文(4170) | 回复(0) | 编辑 | 精华 |
|