LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1999|回复: 18

utf8和utf-8到底有什么区别啊!!

[复制链接]
发表于 2009-12-15 09:28:03 | 显示全部楼层 |阅读模式
我在安装gentoo系统的时候,安装好之后,建议了~/.xinitrc文件并在里面把locale设置成为zh_CN.utf8,然后安装所有的系统软件都是正常的,能显示中文一切正常。后来安装好了Gnome之后,在GDM引导界面里面有选择语言的,但是里面没有zh_CN.utf8编码,菜单里面只有zh_CN.UTF-8这个菜单,我于是就选择了这个编码,进去Gnome后可以正常的显示中文。但是后来我在使用Man命令的时候发现出来的都是乱码,而且更奇怪的是我的Fcitx也不能正常使用了。打开就自动退出来,于量我删了GDM启动,还是按照之前在~/.xinitrc中加入zh_CN.utf8就问题都解决了,但是每次启动都打startx是挺烦的一种事情,我现在就是不明白zh_CN.utf8和zh_CN.UTF-8到底有什么区别啊?附我的~/.xinitrc
export LANG=zh_CN.utf8
export LC_ALL=zh_CN.utf8


export XMODIFIERS="@im=fcitx"
export XIM=fcitx
export XIM_PROGRAM=fcitx



export XDG_MENU_PREFIX=gnome-


exec gnome-session
发表于 2009-12-15 09:32:26 | 显示全部楼层
好像是没有区别,中间的这些‘-’都会被干掉
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-15 10:04:37 | 显示全部楼层
那我现在怎么办呢?如果用gnome的引导,我的Man帮助大部分都是乱码,而且有的时候那个小企鹅也不能输入中文了?有没有办法把这两个编码转换一下呢?我想用Gnome的引导界面,不希望每次都要输入Startx启动Gnome
回复 支持 反对

使用道具 举报

发表于 2009-12-15 10:11:44 | 显示全部楼层
设置locale的时候用zh_CN.UTF-8,

记得某些情况下有utf8这个东西,好像有人讨论过。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-15 10:52:11 | 显示全部楼层
我查遍了论坛,是有几篇文章写关于这两个编码的,基本的意思都是说一样的,为什么utf8 设置成为UTF-8就出现Man里面有乱码,Fcitx不能正常输入的问题呢?那说明这两个编码还是不同的?
回复 支持 反对

使用道具 举报

发表于 2009-12-15 11:43:59 | 显示全部楼层
这两个是一个意思,指同一个编码,两个写法

只是有些程序两个都认,这是标准行为

如果有程序不是这样的,那就是程序的问题
回复 支持 反对

使用道具 举报

发表于 2009-12-15 11:47:25 | 显示全部楼层
lz没有看gentoo的本地化指南吧,好像是这个名字吧,

中文的我没看过,但是应该已经翻译过来了。
回复 支持 反对

使用道具 举报

发表于 2009-12-15 19:54:28 | 显示全部楼层
不记得是在官方的FAQ还是哪看到过
官方的写法是UTF-8,而不要使用其他(例如utf8和utf-8),因为UTF代表得是UCS Transformation Format!但是,可以在变量中使用,这也是为什么正式的文档不会出现除了UTF-8这个之外的任何写法的原因.

一般情况下,这2个是一样的~
至于出现错误的原因,就要看程序内部具体是怎么定义utf8这个变量的了..

ps 个人推测,程序根据zh_CN查找其后面的编码,如果没找到,则默认启用gb18030(还是gkb?),因为此处无法找到utf8这个编码,默认启用了18030,所以用UTF-8进去就是乱码了.
ps2 如果lz把~/.xinitrc改成
export LANG=zh_CN.GB18030
export LC_ALL=zh_CN.GB18030
进去系统而不乱码,证明我的猜测正确了..
lz有空可以试试~~
回复 支持 反对

使用道具 举报

发表于 2009-12-15 20:04:47 | 显示全部楼层
Post by Mie;2056153
不记得是在官方的FAQ还是哪看到过
官方的写法是UTF-8,而不要使用其他(例如utf8和utf-8),因为UTF代表得是UCS Transformation Format!但是,可以在变量中使用,这也是为什么正式的文档不会出现除了UTF-8这个之外的任何写法的原因.

一般情况下,这2个是一样的~
至于出现错误的原因,就要看程序内部具体是怎么定义utf8这个变量的了..

记得谁说过UTF-8和utf8在glibc内会自动转换的,所以用起来完全一样。
回复 支持 反对

使用道具 举报

发表于 2009-12-15 20:12:44 | 显示全部楼层
Post by coderoar;2056156
记得谁说过UTF-8和utf8在glibc内会自动转换的,所以用起来完全一样。


恩恩~~所以主要是看程序是怎么设置的~
man和fcitx依靠glibc否?(我不清楚)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表