代码改变世界

Unicode形成的“?”问题

2008-05-08 08:13  ubunoon  阅读(389)  评论(0编辑  收藏  举报

      为了能够采用统一的编码来表示世界上各地的语言,ISO采用了Unicode编码来实现,是占用两个字节的编码方式,每一个字符均有唯一的编码,约有65535个字符。
      不同的国家,具有不同的货币,时间日期等格式差别,这些差别又被称之为:l18n。
      Linux和Windows为了能够在各个国家的电脑上平稳的运行,也为了支持世界各地的电脑软件,为每个国家实现了不同的Unicode配置。

      这不,昨天大晚上的就有人打电话给我,说是他的金蝶软件以及其他软件都显示??,无法读取数据。
      我匆匆赶到现场,打开金蝶一看,都是??的显示,根本没有办法读取数据,在打开Word一看,呵呵,什么都是好的,我心里开始有点郁闷了,这是怎么回事呢!
      找我的人已经与金蝶公司联系上了,说了几个时间格式问题,而且还介绍到注册表去修改。
      我又听了该公司的人说下午安装软件的时候设置了一下时间格式,不曾想到设置完后居然变成这样了。
      我打开“控制面板”的“区域选项”,在语言选项中看到Unicode选项中的语言为“爱尔兰”,这让我非常激动,因为经常写软件的人都知道,底层Unicode编码与上层显示的字符与这个选项有关,繁体与简体共用同一套Unicode编码,于是,我修改这个选项为“中文(中国)”,按系统要求,重新启动,打开金蝶软件,一切显示完好,再打开其他软件,也是完好显示。问题搞定。
      小结:
      1、写到此处,不得不佩服微软的Office国际化做的好,在设置上出现问题时也并没有影响到Office中菜单等字符的显示。
      2、Unicode编码设置错误将显示?在各个控件上,是用户无法读取数据。只需在控制面板的区域选项中设置Unicode为当地软件支持的Unicode环境即可(一般为“中文(中国)”)。
      3、由于此问题的出现,再次劝诫需要做国际化软件的Programmer,一定要注意不要在程序中直接实现字符串,并采用Unicode编译,避免形成造成不兼容。


ubunoon
080508