时间:2015-09-29 15:16:09 作者:zhijie 来源:系统之家 1. 扫描二维码随时看资讯 2. 请使用手机浏览器访问: https://m.xitongzhijia.net/xtjc/20150929/58870.html 手机查看 评论 反馈
Ubuntu修改Locale的目的就是更改Linux系统的语言环境,但是Ubuntu修改Locale经常出现一个错误,导致出现中文乱码等一系列的问题。本文就来介绍一下Ubuntu系统修改Locale过程出现错误怎么解决?
问题描述
终端显示中文正常,应用程序里面显示中文异常。
错误表现
1$ sudo dpkg-reconfigure locales
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = “zh_CN:zh:en_US:en”,
LC_ALL = “zh_CN.UTF-8”,
LANG = “zh_CN.UTF-8”
are supported and installed on your system.
perl: warning: Falling back to the standard locale (“C”)。
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (zh_CN.UTF-8)
Generating locales.。。
en_US.UTF-8.。。 /usr/sbin/locale-gen: line 177: warning: setlocale: LC_ALL: cannot change locale (zh_CN.UTF-8)
up-to-date
Generation complete.
1$ man locale
man: can‘t set the locale; make sure $LC_* and $LANG are correct
1$ locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=zh_CN.UTF-8
LANGUAGE=zh_CN:zh:en_US:en
LC_CTYPE=“zh_CN.UTF-8”
LC_NUMERIC=“zh_CN.UTF-8”
LC_TIME=“zh_CN.UTF-8”
LC_COLLATE=“zh_CN.UTF-8”
LC_MONETARY=“zh_CN.UTF-8”
LC_MESSAGES=“zh_CN.UTF-8”
LC_PAPER=“zh_CN.UTF-8”
LC_NAME=“zh_CN.UTF-8”
LC_ADDRESS=“zh_CN.UTF-8”
LC_TELEPHONE=“zh_CN.UTF-8”
LC_MEASUREMENT=“zh_CN.UTF-8”
LC_IDENTIFICATION=“zh_CN.UTF-8”
LC_ALL=
1$ localectl list-locales
C.UTF-8
en_US.utf8
zh_CN.utf8
问题解决办法
要想达到应用程序中正常显示中文字符的目的,要下面的三个变量应该如下,
1LANG=zh_CN.UTF-8
2LANGUAGE=zh_CN:zh:en_US:en
3LC_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) ”,因此重新安装中文语言包。
执行下面命令
1sudo apt-get -y install language-pack-zh-hans
或
1sudo apt-get -y install language-pack-zh-hans language-pack-zh-hans-base
如果想支持繁体字,则执行
1sudo apt-get -y install language-pack-zh-hant
或
1sudo apt-get -y install language-pack-zh-hant language-pack-zh-hant-base
再执行locale命令设置当前locale环境
1locale
相关的文件和参考
相关手册: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系统修改Locale过程出现错误怎么解决的全部内容了,本文介绍的方法适用于CentOS,也适用于其他的Linux系统
发表评论
共0条
评论就这些咯,让大家也知道你的独特见解
立即评论以上留言仅代表用户个人观点,不代表系统之家立场