今天,使用繁体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。
关于“
字符编码研究”
本文探讨了在繁体WindowsXP环境下输入繁体字并正确显示于数据库中的原理,指出操作系统使用Unicode作为内码,而输入法在简体环境中自动转化为Unicode输出繁体字,解释了文本文件保存和Excel文件编码选择对繁体字显示的影响。
2569

被折叠的 条评论
为什么被折叠?



