红联Linux门户
Linux帮助

FreeBSD中locale和encoding的一些测试

发布时间:2007-08-13 00:03:31来源:红联作者:Diary
  因为测试光盘上中文文件名的显示,对locale和encoding有了一些新的认识!
  测试平台:FreeBSD 6.2 release,kde,安装了中文字体
  测试一:
  setenv LANG zh_CN.UTF-8,在用户目录下生成了一个“测试用例.txt"的中文文件名!在模拟终端和Konqueror中都能正常显示中文文件名。
  当我在模拟终端上修改了encoding, UTF-8 =====>>>> GBK 后,ls -w 的结果是:
  -------->娴???ㄤ?.txt
  我的理解是:当用户的locale设定为zh_CN.UTF-8时,用户所生成的文件名是按照 UTF-8 来进行编码的!当用别的编码来解读的话,比如GBK,就会出现“错误”
  测试二:
  在模拟终端上,setenv LANG zh_CN.GBK,编码设置为gbk,在用户目录下生成一个“测试用例gbk.txt“,可以用ls -w 显示出正确的文件名。
  在Konqueror中不能正确显示!
  小结1:在zh_CN.UTF-8的locale下,对于gbk编码的文件名不能正确显示!而文件名的编码方式是由locale来决定的!我想这是KDE在对文件名按照locale的定义中的编码部分进行显示,把gbk编码文件名当成utf编码来读,因为编码本身是不兼容的,所以出现不能正确显示。
  结论1:如果考虑到于Windows的交互使用,不能使用zh_CN.UTF-8 这个locale,因为在这个locale下的文件名编码是utf-8,windows和其他的中文locale没有办法对它进行正确的处理!
  如果考虑系统的一致性和编码集的国际惯例,例如与KDE的一致性,可以采用zh_CN.UTF-8的locale!
文章评论

共有 0 条评论