解决Ubuntu中文显示为乱码

1. 安装所需软件

sudo apt-get -y install language-pack-zh-hans
sudo apt-get install zh-autoconvert
sudo apt-get install zhcon
 
 
  • 1
  • 2
  • 1
  • 2

2. 配置系统

$ vi /var/lib/locales/supported.d/local  加入
zh_CN.GBK GBK
zh_CN.GB2312 GB2312zh_CN.UTF-8 UTF-8
$ sudo locale-gen
 
 
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

3. 修改ubuntu的字符集

方法一: 修改用户目录下的.profile或.bashrc文件,增加以下内容:

LANGUAGE=”zh_CN:zh:en_US:en”
LANG=zh_CN.UTF-8 
 
 
  • 1
  • 2
  • 1
  • 2

重新登录即可。 
这个方法只对该用户有效。 
方法二:修改/etc/environment,增加以下内容:

LANGUAGE=”zh_CN:zh:en_US:en”
LANG=zh_CN.UTF-8
 
 
  • 1
  • 2
  • 1
  • 2

然后重启X即可 
这个方法对没有设置LANG及LANGUAGE环境变量的用户有效

参考:

http://blog.csdn.net/zjc156m/article/details/9095297 
http://blog.csdn.net/xieyan0811/article/details/7530962 
http://www.linuxidc.com/Linux/2014-02/96939.htm


==============补充=======================

要想达到应用程序中正常显示中文字符的目的,要下面的三个变量应该如下,

1
2
3
LANG=zh_CN.UTF-8   
LANGUAGE=zh_CN:zh:en_US:en   
LC_ALL=LC_ALL=zh_CN.UTF-8

但问题在于“LC_ALL to default locale: No such file or directory”和“LC_ALL: cannot change locale (zh_CN.UTF-8) ”,因此重新安装中文语言包。

执行下面命令

1
sudo  apt-get -y  install  language-pack-zh-hans

1
sudo  apt-get -y  install  language-pack-zh-hans language-pack-zh-hans-base

如果想支持繁体字,则执行

1
sudo  apt-get -y  install  language-pack-zh-hant

1
sudo  apt-get -y  install  language-pack-zh-hant language-pack-zh-hant-base

再执行locale命令设置当前locale环境

1
locale

相关的文件和参考

相关手册:man locale(1), locale(5), locale(7)

相关文件:/usr/share/i18n/SUPPORTED

相关命令:

locale --all-locales 列出当前系统中所有支持的locale

localectl list-locales 列出当前系统中所有可用的locale

localectl set-locales LOCALE... 修改当前系统中的locale,与locale功能相同,与export上文提到的三个变量相同

对于CentOS,可以直接编辑/etc/sysconfig/i18n文件,将LANG="en_US.UTF-8"设置成LANG="zh_CN.UTF-8",除此之外,CentOS下locale命令的显示结果如下:

1
# locale

LANG=en_US.UTF-8    
LC_CTYPE="en_US.UTF-8"    
LC_NUMERIC="en_US.UTF-8"    
LC_TIME="en_US.UTF-8"    
LC_COLLATE="en_US.UTF-8"    
LC_MONETARY="en_US.UTF-8"    
LC_MESSAGES="en_US.UTF-8"    
LC_PAPER="en_US.UTF-8"    
LC_NAME="en_US.UTF-8"    
LC_ADDRESS="en_US.UTF-8"    
LC_TELEPHONE="en_US.UTF-8"    
LC_MEASUREMENT="en_US.UTF-8"    
LC_IDENTIFICATION="en_US.UTF-8"    
LC_ALL=

其中,LC_ALL=为空,但并不是表示这里不对,而是LC_ALL=实际上等于LC_COLLATE、LC_CTYPE、LC_MONETARY、LC_MESSAGES、LC_NUMERIC、LC_TIME,参见locale(7)。



==============补充=======================

我是先安装了Ubuntu 12.04 Server,然后安装桌面。进入以后发现中文有问题。

解决方法:
一. Ubuntu默认的中文字符编码
Ubuntu默认的中文字符编码为zh_CN.UTF-8,这个可以在
/etc/environment中看到:
sudo gedit /etc/environment
可以看到如下内容:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh:en_US:en"第二行即是默认的中文字符编码。注:可以通过这里修改默认的中文编码字符,比如修改为:zh_CN.GBK。

二. 添加中文字符编码的方法
1. 直接使用locale-gen
在终端输入命令:
sudo locale-gen zh_CN.GB18030
即可完成中文字符集的添加。完成后可以转到
/usr/lib/locale/,下面已经有一个zh_CN.gb18030文件夹;在超级终端输入命令:
gedit /var/lib/locales/supported.d/local,可以发现文件中多了一行:zh_CN.GB18030 GB18030。说明添加成功。

2. 通过修改/var/lib/locales/supported.d/local文件
在终端输入命令行
sudo gedit /var/lib/locales/supported.d/local
可以看到如下内容:
zh_CN.UTF-8 UTF-8
en_US.UTF-8 UTF-8
在文件尾添加中文字符集
zh_CN GB2312
保存后退出。在终端输入命令:
sudo dpkg-reconfigure locales
最后重启ubuntu。

重启后在系统设置--语言设置里面需要勾选中文,就会自动下载中文包,安装完成后再次重启就ok了。


  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值