locale和encoding的一些测试

2009-05-13 09:27:35来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

因为测试光盘上中文文件名的显示,对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!
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/12258/showart_358475.html

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:在FreeBSD上安装Apache,PHP和MySQL

下一篇:freebsd用port安装时make的功能