haulm 发表于 2006-6-24 09:18:44

再论UTF8码locale应用是否方便

试用了一星期的Everest,感觉locale为UTF8在使用多语言支持完整的软件、编译器时是没问题的。但同时发现不少的应用程序没有zh_UTF8的概念,这些程序只用en_UTF8,对中文支持用的是GBK。中文编码的应用特别在linux下是很混乱的,你用UTF8会发现乱码,你用GBK一样也会遇到乱码,纠结编码问题还会泱及输入法,特别是SCIM。短期内应用WIN的用户仍远超过Linux用户,大量的资料文档也会继续使用GB18030,所以locale使用UTF8的麻烦似乎远超过使用GBK。

taizitju 发表于 2006-6-24 09:29:46

没有什么理性的认识   只是感觉utf8 好
ooo 的文件和 doc 的文件都不受这个影响
纯文本转换过来就好

jiangtao9999 发表于 2006-6-24 09:30:24

对于 utf8 ,你可以把你所有的文字全都转换过去。
这只是你一个人的工作。

如果继续 gb18030 ,那需要所有的程序都进行修改。
这是很多人的工作。

是你一个人干活好呢,还是一帮人干活好呢?

en.utf8 和 zh_cn.utf8 基本上没区别,你遇到的那些估计是支持 en.iso8859 的。

haulm 发表于 2006-6-24 09:34:55


en.utf8 和 zh_cn.utf8 基本上没区别,你遇到的那些估计是支持 en.iso8859 的。

如果从编码上说自然没有什么错,但从中文支持上en.utf8也就是英文,你要的中文菜单却是GBK的。

当然我说的只是方便与否,仁兄认为与其让开发者去改程序还不如让用户们自己去适应和转换UTF8?

问题是如果国内对应用编码不能口径一致,后果就是更混乱。

woolzey 发表于 2006-6-24 09:43:51

这个说法不太对吧?

现在有哪些程序可以在utf-8下支持中文,但是在gb下需要“修改”才能用的?太少了吧,我知道的极少数几个也都是因为历史遗留问题。

如果继续 gb18030 ,那需要所有的程序都进行修改。
这是很多人的工作。

haulm 发表于 2006-6-24 09:51:55

现在国外开源的程序基本上都支持utf8、gbk,但对zh_utf8的支持却并不到位,你可以把程序按utf8编译,但安装结束发现找不到中文支持。

唉,不讨论了,混乱的东西导致思唯也混乱,jiangtao9999兄原来是反对locale用utf8的。

woolzey 发表于 2006-6-24 09:59:07

我的看法是gb也好,utf-8也好,本质上一样,谁也不比谁更好。如果utf-8下应用有问题就用gb,如果gb下有问题就用utf-8,如果啥问题都没有就用默认的。

KDE 发表于 2006-6-24 11:29:09

历史会说明一切,大家努力就好。

windwiny 发表于 2006-6-24 19:05:15

几位老大废话了一堆 ,,没讨论出个子丑寅卯来。。。


那个GB18030 在WIN下不是国家标准吗?忘记哪看来的了
LINUX下倒不清楚。。

jiangtao9999 发表于 2006-6-24 22:10:26

TO haulm:
locale 是 utf8 ,菜单式 GBK 的话,那你是你的程序编写的问题。或者是 linux 基础库的问题。
目前所有的菜单,界面文字,都是 utf8 编码的。
你需要在编写程序的时候保证所有的源代码都是基于 utf8 编写的。

我现在也依然反对 locale 是 utf8 ,但这并不和系统内部使用 utf8 冲突。
utf8 是让全世界编码都一样的唯一的办法。但这需要所有的数据都从头开始,他不适用于原有的各种格式的,需要和旧有编码继续交换的情况。

对于程序员来说,使用 utf8 编写和 gbk 编写没有什么不同,因为他的源代码都是一种编码,而且转换后源代码就会编译成二进制程序,不存在文本文件还要进行数据交换的问题。因为系统内部就是 utf8 的。
并且,将文本进行源代码分离也是一个多语言编写的好习惯。

而本地保存的 gb 数据,不可能像有工程软件管理的源代码那么容易整理、转换,并且他需要和旧有程序进行交互,不可能完全变更编码。

内部运算,utf8 目前正好,数据保存,还是需要 gb 系列。

这两个不存在本质的冲突,唯一的问题就是程序编写缺乏详细的设计,导致编码混乱。

TO woolzey:
如果没有遗留问题,那么就不存在编码问题了。

KDE 发表于 2006-6-24 23:00:19

的确程序内部基本都已采用 utf-8,我们翻译程序界面也是使用 utf-8,大量工具的输出也是 utf-8。但一定要做好协调和转换工作,要良好作到兼容现有的编码,否则就会给用户找麻烦。

woolzey 发表于 2006-6-25 00:27:22

事实上现在大量在内部使用utf-8的程序都是拿字符串当英文来处理,并不是真正的国际化。这样的程序绝大多数不需要处理文字,不需要理解字符串的含义,所以采用utf-8的话程序员可以偷懒沿用处理英文的方法。这并不说明utf-8真的适合作为内部编码。

真正需要处理不同语言的软件,大多在内部使用utf-16。除了商业软件以外,开源软件中openoffice, XeTeX,以及IBM做的国际化库ICU都是选择了utf-16。XeTeX的作者写过一篇文章,提到他为什么选用utf-16,而不是utf-8,里面说的还是很有道理的。IBM好像也有一个文档是关于ICU使用utf-16的原因。

utf-8的设计特点决定了它很适合作为交换编码,但是并不是代表它一定适合做内部编码,至少在有严肃的多语言支持需求的应用中不见得适合。今后,不需要真正处理文字的软件可能会逐渐在内部采用utf-8,以降低开发难度;需要处理文字的软件,会逐渐使用utf-16/32这样易于处理的编码。所以,不太可能所有程序都在内部统一使用utf-8。

的确程序内部基本都已采用 utf-8,我们翻译程序界面也是使用 utf-8,大量工具的输出也是 utf-8。但一定要做好协调和转换工作,要良好作到兼容现有的编码,否则就会给用户找麻烦。

haulm 发表于 2006-6-25 02:21:15

正如楼上所说的,现在大量在内部使用utf-8的程序都是拿字符串当英文来处理,并不是真正的国际化,这是我使用Everest编译和使用不少程序后的感受,也谢谢jiangtao9999的提醒,不过win程序开发使用unicode和linux程序开发使用utf8我是知道的。

KDE 发表于 2006-6-25 07:33:32

事实上现在大量在内部使用utf-8的程序都是拿字符串当英文来处理,并不是真正的国际化。这样的程序绝大多数不需要处理文字,不需要理解字符串的含义,所以采用utf-8的话程序员可以偷懒沿用处理英文的方法。这并不说明utf-8真的适合作为内部编码。

真正需要处理不同语言的软件,大多在内部使用utf-16。除了商业软件以外,开源软件中openoffice, XeTeX,以及IBM做的国际化库ICU都是选择了utf-16。XeTeX的作者写过一篇文章,提到他为什么选用utf-16,而不是utf-8,里面说的还是很有道理的。IBM好像也有一个文档是关于ICU使用utf-16的原因。

utf-8的设计特点决定了它很适合作为交换编码,但是并不是代表它一定适合做内部编码,至少在有严肃的多语言支持需求的应用中不见得适合。今后,不需要真正处理文字的软件可能会逐渐在内部采用utf-8,以降低开发难度;需要处理文字的软件,会逐渐使用utf-16/32这样易于处理的编码。所以,不太可能所有程序都在内部统一使用utf-8。

的确程序内部基本都已采用 utf-8,我们翻译程序界面也是使用 utf-8,大量工具的输出也是 utf-8。但一定要做好协调和转换工作,要良好作到兼容现有的编码,否则就会给用户找麻烦。
大家可以注意到主流商业软件基本都在用 utf-16。

qdzhuang 发表于 2006-6-25 13:48:10

停住这个问题在以前已经是最烂的问题,我的观点,服务器用utf8因为开发的多半用fc和debian,至于桌面以后把这个问题还是交给核心来处理,象win一样,高层的程序根本不要处理这个问题,象用locale来转换我看也是个暂时的方案.
http://www.linuxsir.org/bbs/showthread.php?t=180572
页: [1] 2
查看完整版本: 再论UTF8码locale应用是否方便