梦想 就像鸡蛋
要么孵化 要么臭掉
要么孵化 要么臭掉
中文字符编码格式判断
一年前在日志里面贴了一套繁简体(GB<=>Big5)字符串转化的JAVA方式实现的源代码,最近有朋友在问如何在转化的过程中先判断原始字符的编码格式。在此提供一个简单的 java class 以供参考。
一般来说要对字符编码格式进行判断就是根据各种编码两个字节的起止范围作判断,如果符合起止范围就认为是某种字符编码。但理论上来说不同的字符编码有可能会采用同样的字节范围,所以这种方法并不能完全把某个双字节字符对应到唯一的一种编码格式上(所以说如果大家都用 utf-8 ,整个世界就清静了)。这种伴随着计算机发展而衍生出来的各种双字节语言字符编码只能是尽量想办法处理,但难有完美解决方案。
CnCharsetChecker.java 源代码:
以上代码依据 MySQL 源代码中对于 GB2312 / GBK / Big5 这几种常见中文编码格式的双字节范围判断改写。你还可以从 MySQL 源码包的 strings/ctype-*.c 系列文件中找到其他语言字符编码的范围定义(当然现在有了 Google Code Search,你不需要去下载整个源码包也可以搜索到所有相关的代码)。
This Entry was Last Modified on 2007-05-28 14:38
ac米兰 ajax apache api blog blogchina css dhtml download dreamhost dvd encoding error feeds firefox flash framework gmail google google_analytics google_talk http ide ie ie7 javascript jquery linux maxthon mod_rewrite movies msn mvc mysql oracle php pippo pivot prototype rss shell socket sohu spammers svn vs web web2 webclient weblogic windows xml zend 阿根廷 安全漏洞 奥运 备份 变形金刚 程序员 地铁 浮动层 搞笑 工具 冠军杯 管理 火箭 进程 客户端 篮球 厉 命令行 欧洲杯 人生 上海 设计模式 世界杯 数据库 搜索引擎 算法 图片 无极 系统优化 笑话 姚明 游戏 源代码 周杰伦 字符编码 足球 浏览器

这是我的结果:
爱 is true for GB2312;true for GBK,true for BIG5
愛 is false for GB2312;true for GBK,false for BIG5
ぱ is true for GB2312;true for GBK,true for BIG5
按照unicode,每个子字符集都分配在某个特定的段