选择FreeBSD的中文编码

2009-05-13 16:09:49来源:未知 阅读 ()

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


如何选择FreeBSD的中文编码- -
如何选择FreeBSD的中文编码- -
Tag: freebsd    localization    zh    cn                                          
如果你完全不需要使用中文等多字节的亚洲文字,那么本文对你毫无用处。
中文的编码FreeBSD支持以下几种:
zh_CN.eucCN
zh_CN.GB2312
zh_CN.GBK
zh_CN.GB18030
zh_CN.UTF-8
其中带GB的都是国内的标准,UTF-8其实就是Unicode,是Unicode的一种编码方式(其他的有UTF-16,UTF-32)等,eucCN其实不是实际存在的编码种类,在FreeBSD中它就是GB2312(待证明)
其中GB2312/GBK/GB18030这几个编码是兼容的,只是字符集的大小不一样,GB2312最小,毕竟是80年的东西了,GB18030的字符集最大。
其实中文编码的选择涉及到以下几个方面:
1、界面语言编码
2、磁盘文件名称语言编码
3、网络传输的中文信息编码
4、于其他系统的兼容性
5、应用程序的兼容性
下面,将对以上的因素一一解剖
1、界面语言编码
上面所述的所有编码都可以正确的在X11下显示中文,区别的是支持的字符集大小的问题以及是否国际化的问题。如果你要你的系统符合国际标准,那么就选择 UTF-8,如果你要符合国家标准,那么就GBxxx。不过,对于想GTK这样的库来说,无论你如何选择,它内部字符串的编码都是UTF-8,这是GTK 的国际化策略所决定的
2、磁盘文件名称语言编码
如果单独讨论磁盘文件名称的编码是无意义的。它的意义在于文件名最终必须显示在界面中,不同编码的文件名显示出来的字符可能是一样的。因此,编码的选择必须保证文件系统中的所有文件名的编码都是统一的。
而由于文件名最终是通过界面显示给用户的,因此也建议磁盘文件名的编码与界面的编码一致。
现在问题就来了,ufs文件系统没有内置的文件名编码,字符串的编码是什么文件系统并不关心。由于FreeBSD用户存在多种终端,多种窗口管理器可以选择,因此希望这些软件使用统一的文件名编码是不现实的。
对于GTK的程序可以使用以下环境变量
G_FILENAME_ENCODING=@locale
来建议GTK的程序在遇到需要处理文件名的时候遵从指定的locale,但这也是非强制性的
3、网络传输的中文信息编码
毫无疑问,我们现在网络传输的中文文本绝大部分时候gb2312传输。当然对于某些网站也有使用UTF8传输。对于Web来说,编码是什么不算非常重要,因为浏览器对这些编码都有完整的支持。而对于FTP,X下的客户端以及控制台下的FTP程序对基本上没有编码这个概念了,都是以原始的数据显示到界面中来。因此GBxxx在此是比UTF-8有相对优势的,在现时的网络环境中,毕竟我们不能忽视网络对我们重要意义。但是如果有适合的工具,这种编码的转换是很容易的
4、于其他系统的兼容性
对其他系统的兼容性主要是针对windows。这里可以举几个例子说明这些问题。
a、windows下的rar文件打包后使用utf-8对其文件名编码,如果locale不设置为UTF8,不解压时看到的文件名为乱码
b、cd中的文件名如果含有中文文件使用双字节的unicode编码(非utf-8),locale为UTF8是怎么也显示不出中文。
5、应用程序的兼容性
X下的程序对以上编码的支持程度不尽你相同,

xmms/mplayer等程序由于使用gtk1,所以只支持gb2312和eucCN;
而openoffice.org 对文件名的编码只支持eucCN和UTF-8,即使设置了G_FILENAME_ENCODING=@locale,openoffice.org也不能在locale为GBK/GB2312/GB18030下把文件名保存为指定locale编码,而用了默认的utf-8,造成文件名编码的不一致; fcitx在GBK下不能在Firefox中输入中文;

标签:

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

上一篇:提示:bad kernel: arp : 内网IP地址 is on em0 but got repyly

下一篇:小弟新手有愚昧的问题请问高手!