在ubuntu Linux下让Eclipse支持GBK编码

原创 2007年09月23日 13:39:00
在Ubuntu下工作呢很长一段时间了, 项目开发的时候一直都用UTF-8编码,但是最近来了个项目要求使用GBK编码,但是在Ubuntu下Eclipse不能支持GBK,上网搜了下无果。只有自己想办法了。
首先更改locale 在伪终端下执行export LANG=zh_CN.GB18030(注:GB18030兼容GBK,且是国家强制标准),再在该终端下启动eclipse。看项目属性里已经支持GB18030了,不过好像乱码问题还是有呢。后来想到Ubuntu默认下是没有GB18030和GBK的本地locale的,所以为了设置locale为zh_CN.GB18030,我们需要先为glib产生GB18030和GBK编码的支持。
下面红色部分内容是转自ubuntu forum
http://forum.ubuntu.org.cn/viewtopic.php?t=67407&highlight=zh_CN.GB18030
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中一样右键解压或是压缩,不过俺不会,有人会的话可不可以提供个脚本?

按上面设置完后Eclipse对GB18030支持就正常了,且不会用乱码问题了。但是这样每次都去输入命令是不是很麻烦了,解决有三个方法:
一。更改系统编码为GB18030,我不推荐这种方式,UTF-8在Linux平台上是一种趋势,很多软件将只支持UTF-8,这样不利于使用。
二。编写一个shell,双击执行。
  #!/bin/sh
export LANG=zh_CNGB18030
${ECLIPSE_HOME}/eclipse
三。创建桌面快捷菜单,在执行程序加上参数 -vmargs -DLANG=GB18030,这样想GB18030就用GB18030,UTF-8就UTF-8。
cheaper发表

eclipse 设置默认编码为Utf-8 详细教程。

需要设置的几处地方为:  Window->Preferences->General ->Content Type->Text->JSP 最下面设置为UTF-8  Window->Prefe...
  • qq_21376985
  • qq_21376985
  • 2016年03月01日 16:24
  • 779

Ubuntu支持GBK编码

4.支持GBK编码Ubuntu默认是不支持GBK编码的。所以首先要先让Ubuntu支持GBK,方法如下:   1.      修改/var/lib/locales/supported.d/local文...
  • lygglobetech
  • lygglobetech
  • 2011年05月05日 17:06
  • 3828

解决ubuntu下无法正确显示GBK编码的问题

本帖最后由 xyqlgpp 于 2010-12-23 09:57 编辑 我使用的系统是Ubuntu10.04,系统默认编码是utf-8,同时,默认下eclipse事找不到GBK的编码的。而一般...
  • hpp24
  • hpp24
  • 2014年05月14日 15:58
  • 454

Eclipse 添加GBK编码

Windows PC上编写的Android代码导入到Linux平台上Eclipse显示乱码,原因是Windows默认编码格式是UTF-8; 而Linux平台默认编码格式是GBK,解决办法: ...
  • tj_shenzhendaxue
  • tj_shenzhendaxue
  • 2017年10月16日 14:36
  • 207

改变ubuntu默认编码为GBK

在Ubuntu支持中文后(方法见上篇文章),默认是UTF-8编码,而Windows中文版默认是GBK编码。为了一致性,通常要把Ubuntu的默认编码改为GBK。当然你也可以不改,但这会导致我们在两个系...
  • zbunix
  • zbunix
  • 2013年05月19日 22:12
  • 8509

ubuntu中eclipse 不支持gbk编码问题解决办法

ubuntu中eclipse 不支持gbk编码问题解决办法
  • u013067629
  • u013067629
  • 2014年11月19日 20:13
  • 1433

Eclipse GBK支持添加

Eclipse GBK支持添加     首先Windows->Preferences, 然后选择General下面的Workspace. Text file encoding选择Other GBK,...
  • huanghui167
  • huanghui167
  • 2012年11月09日 16:44
  • 4342

在ubuntu Linux下让Eclipse支持GBK编码

在Ubuntu下工作呢很长一段时间了, 项目开发的时候一直都用UTF-8编码,但是最近来了个项目要求使用GBK编码,但是在Ubuntu下Eclipse不能支持GBK,上网搜了下无果。只有自己想办法了。...
  • wingStudio_sau
  • wingStudio_sau
  • 2007年09月23日 13:39
  • 2695

Linux下eclipse中文乱码问题解决方案

  • 2012年05月20日 10:25
  • 49KB
  • 下载

转载 在ubuntu Linux下让Eclipse支持GBK编码

原帖: http://blog.csdn.net/wingStudio_sau/archive/2007/09/23/1796870.aspx 在Ubuntu下工作呢很长一段时间了, 项目开发的时候一...
  • win74
  • win74
  • 2007年12月19日 10:36
  • 1237
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在ubuntu Linux下让Eclipse支持GBK编码
举报原因:
原因补充:

(最多只允许输入30个字)