当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 19 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : [教学]中文gb18030之locale设置方法
帖子发表于 : 2007-08-02 12:11 

注册: 2007-05-06 10:56
帖子: 28
送出感谢: 1
接收感谢: 0 次
ubuntu中文化指南

前言:下面的文字只是针对采用zh_CN.GBxxx作为locale的untuntu系统进行的设置指南。
发现最近几天又有人问这个问题了,下面的方法我查了半天的资料,花了很多功夫,总算是有了这个方法,因为我个人对utf8确实没什么好感(这一点就不要争论了,个人印象如此,改不了了),所以和大家分享一下(其实我很懒,打了这么多字,不容易啊),这个帖子前几天发的,可能有人没看到,编辑一下再顶起来,希望需要的人可以看到,说实在的,网上关于linux设置中文locale的方法,都比较笼统,用起来总有这样那样的问题,希望这篇文章可以对你有帮助。

注:linux文件系统的一些概念,linux的文件系统的文件名是基于字节流的,也就是说文件名的编码以byte为单位读取的,所以文件名可以是多字节编码方案,比如gb18030, utf8,不能是宽字节编码,比如如windows使用的utf16。所以只要是多字编码方案的文件名,linux都是可以读取的。

1)为glib的国际化支持产生国标编码支持,ubuntu系统默认状态下是没有GB18030和GBK的本地locale的,所以为了设置locale为zh_CN.GB18030,我们需要先为glib产生GB18030和GBK编码的支持。
1、首先设置sudo vi /var/lib/locales/supported.d/local

添加一行 zh_CN.GBK GBK和zh_CN.GB18030 GB18030

2、sudo locale-gen
3、重启之后,在登录窗口的选项里面就可以选择中文(GB18030)了。
4、进入系统后,终端的默认编码已经是GB18030了,可以在终端中创建中文文件名的文件试试看,比如touch 中文,再ls显示看看。

2)作为ubuntu重要组成部分的gnome是基于glib库的,在glib的函数里,默认读写文件名的编码选项是utf8,所以使用gtk或是gnome程序创建的中文文件名仍然是uft8编码的,可以通过下面的方法验证,在nautilus中进入/home/用户文件夹,右键创建文件夹,取一个中文名字,在终端中ls显示,会发现这个文件夹是乱码,将终端的编码切换为uft8,发现至少可以部分正常显示,说明文件夹的编码是uft8。其实glib提供了两个宏,只要正确的设置,就可以告诉gnome程序,用户要读取的文件名的编码是哪一种多字编码方案,那么文件函数完全可以采用gb18030的编码。

使用gdm启动Gnome的写入用户主目录的.profile文件,当gnome启动后,会读取这个文件里面的设置。
添加以下内容:
export G_FILENAME_ENCODING=GB18030
export G_BROKEN_FILENAMES=1
这是告诉使用了glibc的程序,系统文件名的默认编码是gb18030,重启后,再用上面的方法实验,会发现终端里面和nautilus中显示的文件名已经是一致的了。

经过上面两步的设置,系统的工作环境就是gb18030了,可以很好的用中文工作,哪怕是编写脚本,只要保存编码改成gb18030就没问题,哪怕是grep之类的命令,gb18030都可以很好的支持,使用中文的正则表达式除外。

3)fat32分区的挂载,将locale改成zh_CN.GB18030之后,会发现挂载的分区中文文件都显示乱码,这是因为ubuntu自动挂载分区时采用的参数是uft8,所以要重新修改挂载的参数。
sudo gedit /etc/fstab
比如c盘的挂载参数是类似于这样
UUID=466A-E277 /media/sda1 vfat defaults,utf8,umask=007,gid=46 0 1
将utf8用codepage=936,iocharset=cp936代替,变成
UUID=466A-E277 /media/sda1 vfat defaults,codepage=936,iocharset=cp936,umask=007,gid=46 0 1
参数的含义可以用man mount查看(懒得打字了)其他fat32分区的挂载参数也同样修改。
重启之后发现分区显示也正常了。
因为我没用ntfs分区,所以nfts分区的挂载方法请用man mount自己查看。

gb18030环境下有问题的程序和解决方法。
其实如果是基于规范的glibc函数编程的话,gb18030应该不会有什么问题。
1. mplayer
安装版的mplayer的打开文件的功能是看不见windows挂载分区上的中文文件的,不过可以在浏览器里面直接双击打开,算是不是问题的问题吧。如果要编译源文件的话,根据有的说明要暂时将locale改成utf8,编译后再改回来就可以了。

2.ubuntu自带的归档管理器和7zip软件在gb18030的环境下,读写中文文件名的文件是有问题的,解决方法是安装rar,它是基于命令行的方式,对zh_cn.gb18030支持很好,如果嫌麻烦的话,好象可以编写nautilus的脚本的,可以向windows中一样右键解压或是压缩,不过俺不会,有人会的话可不可以提供个脚本?

其它的暂时没有什么发现,有什么补充的话可以告诉我,我再修改帖子。


最后由 wizardyhnr 编辑于 2007-08-31 11:56,总共编辑了 2 次

页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-08-02 18:11 
头像

注册: 2006-03-13 9:04
帖子: 18
送出感谢: 0 次
接收感谢: 0 次
gnome-control-center就可以了


_________________
AMD64 Semporn 2800+(up to 2.4G);TFORCE 6100;Infineon 512MB DDR400;WD JB 80G 7200 8M SATA;ENVISION EN-7220;Microsoft Optical Basic;


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-08-02 19:28 
头像

注册: 2006-11-11 10:23
帖子: 1226
地址: Mars
送出感谢: 0 次
接收感谢: 0 次
utf8才是趋势~~


_________________
抬头望星空一片晴,我独行,夜已渐寒……


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-08-02 19:34 
头像

注册: 2006-10-21 12:03
帖子: 1746
地址: Shanghai
送出感谢: 0 次
接收感谢: 0 次
好办法~

locale=zh_CN.GB18030 8) 8) 8)


_________________
.

私人空间
附有 Magic Linux 2.1 最新开发日志~
引用:


미안하다, 사랑한다




欢迎来 #xfce-cn 中文频道~~


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2007-12-29 20:22 
头像

注册: 2006-09-19 7:17
帖子: 50
送出感谢: 0 次
接收感谢: 0 次
还是用utf8吧
不过还是篇好文章啊
不少启发
哈哈~~~


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2008-01-06 20:58 

注册: 2006-09-25 15:08
帖子: 167
送出感谢: 0 次
接收感谢: 0 次
请问楼主,我不想把现在的语言环境都改为18030,只想这个ubuntu能够正确读出u盘上的使用18030保存的文件的文件名,该怎么做?现在,u盘上的文件名若为汉字必是乱码,文件倒是能正常显示。


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2008-03-01 18:31 

注册: 2008-02-02 18:28
帖子: 31
送出感谢: 0 次
接收感谢: 0 次
3、重启之后,在登录窗口的选项里面就可以选择中文(GB18030)了。 ???
这个登录窗口的选项在那?我用的是KDE3.5怎么也找不着~~~


页首
 用户资料  
 
8 楼 
 文章标题 : Re: [教学]中文gb18030之locale设置方法
帖子发表于 : 2009-06-22 16:40 

注册: 2009-06-19 9:08
帖子: 2
送出感谢: 0 次
接收感谢: 0 次
我用的是Ubuntu8.04 server版,当时装的是英文版,现在装了LAMP,想要在网页里输入中文,全是乱码。我已经安装了GB字库,但还是不行。请问有什么办法解决呢?
PS:server版重启后如何选择默认语言?


页首
 用户资料  
 
9 楼 
 文章标题 : Re: [教学]中文gb18030之locale设置方法
帖子发表于 : 2010-08-29 23:38 
头像

注册: 2010-07-07 11:49
帖子: 35
送出感谢: 0 次
接收感谢: 0 次
好文,讲的透彻.ubuntu现在仍然没法自动侦探字符集


页首
 用户资料  
 
10 楼 
 文章标题 : Re: [教学]中文gb18030之locale设置方法
帖子发表于 : 2010-10-16 7:54 
头像

注册: 2007-07-17 22:52
帖子: 661
地址: cn,shandong
送出感谢: 0 次
接收感谢: 0 次
谢谢分享,MARK,备以后用到再查!!!!


页首
 用户资料  
 
11 楼 
 文章标题 : Re: [教学]中文gb18030之locale设置方法
帖子发表于 : 2010-10-24 11:57 

注册: 2010-05-22 12:59
帖子: 11
送出感谢: 0 次
接收感谢: 0 次
Mark :em11


页首
 用户资料  
 
12 楼 
 文章标题 : Re: [教学]中文gb18030之locale设置方法
帖子发表于 : 2010-10-24 12:29 

注册: 2010-10-21 18:24
帖子: 13
送出感谢: 0 次
接收感谢: 0 次
好文,听说ubuntu要发布“中国版”这篇文章应该被官方看看。。。。


页首
 用户资料  
 
13 楼 
 文章标题 : Re: [教学]中文gb18030之locale设置方法
帖子发表于 : 2010-10-24 16:43 
头像

注册: 2010-09-17 14:16
帖子: 147
送出感谢: 0 次
接收感谢: 0 次
MARK :em09


_________________
--总有一条路,是通往幸福的


页首
 用户资料  
 
14 楼 
 文章标题 : Re: [教学]中文gb18030之locale设置方法
帖子发表于 : 2010-11-06 18:53 
头像

注册: 2010-11-04 19:46
帖子: 22
送出感谢: 0 次
接收感谢: 0 次
请问该怎么增加一行呀


_________________
真相只有一个


页首
 用户资料  
 
15 楼 
 文章标题 : Re: [教学]中文gb18030之locale设置方法
帖子发表于 : 2010-11-26 21:34 

注册: 2009-05-22 20:31
帖子: 31
送出感谢: 0 次
接收感谢: 0 次
mark


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 19 篇帖子 ]  前往页数 1, 2  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译