对于 Unicode 、GBK、BIG5 的误解

今天,使用繁体Windows XP测试了项目的显示和输入,惊奇的发现所输入的繁体字在数据库中被正确的显示了,以为是被自动转化为了GBK编码,可是,这是谁转换的呢,是.NET、数据库、还是Windows本身~~
原因还是在于 Unicode ,在于操作系统,不在于.NET,也不在于数据库。
 
在我纠正了一个被“万能五笔”所误导的思想之后,我知道了原因了。
 
1. Windows NT / Windows 2000 以上的操作系统使用 Unicode 作为内码,而 Win98 等则使用本地编码 ANSI(如 GB、BIG5) 等;
 
2. 在简体的 Windows XP下,Word或Excel的“简转繁”输出的不是 GBK 码,而是 Unicode 码,而各种输入法,包括“万能五笔”所打出来的简体字也不是GB内码的,而都是Unicode 码。 ---- 这正是“万能五笔” 给我的误导,它的 “GB/BIG5转换输出”菜单中第一项显示的是“简体版:GB显示,输出(GB内码)简体字”, 实际上在简体Windows XP下,“输出(GB内码)简体字”自动变为“输出Unicode简体字”,同样道理,在繁体Windows XP下,“输出(BIG5内码)繁体字”自动变为“输出Unicode繁体字”
 
3.  在简体Windows XP下,“输出(BIG5内码)繁体字”则真的输出的是 BIG5 的繁体字,同理,在繁体Windows XP下,“输出(GB内码)简体字”则真的输出的是 GB内码 的简体字,都不是 Unicode内码
 
4.  在文本文件中保存 Unicode内码 的文字时,如果使用的保存格式是 ANSI ,那么在繁体Windows XP下,保存“雌”字,在简体 Windows XP下打开便看到了“慧”字,这是因为这个文件被转化为了使用 BIG5内码来保存,而非 Unicode;
 
5. 在Excel中应该没有 ANSI编码 的保存格式可以选择,这也就说明了为什么i-Tooling发Excel给台湾人时可以不考虑简繁体问题,因为Excel中的全是Unicode
 
 
 
关于“字符编码研究”
posted @ 2010-06-02 23:04  Sunpire  阅读(1012)  评论(0编辑  收藏  举报