设为首页 收藏本站
查看: 916|回复: 0

[经验分享] 简单解决Ubuntu修改locale的问题

[复制链接]

尚未签到

发表于 2018-5-1 14:03:21 | 显示全部楼层 |阅读模式
  本文针对的问题是“Ubuntu 安装中文语言包”“Ubuntu Server中文问题”,“Ubuntu更改语言环境”,“Ubuntu locale的设定”,“cannot change locale (zh_CN.UTF-8)”,“Linux中文乱码”,“Linux字符集的修改”,“Linux乱码的解决办法”等问题,提供一站式解决。如果系统显示中文异常,例如出现显示中文乱码等,可以参考本文章。关于CentOS系统的修改办法,请参考文章末尾的描述。
  问题描述
  终端显示中文正常,应用程序里面显示中文异常。
  错误表现
$ 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.


$ man locale  man: can't set the locale; make sure $LC_* and $LANG are correct

$ 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=


$ localectl list-locales  C.UTF-8     
en_US.utf8     
zh_CN.utf8


  问题解决办法
  要想达到应用程序中正常显示中文字符的目的,要下面的三个变量应该如下,
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) ”,因此重新安装中文语言包。
  执行下面命令
sudo apt-get -y install language-pack-zh-hans  或
sudo apt-get -y install language-pack-zh-hans language-pack-zh-hans-base  如果想支持繁体字,则执行
sudo apt-get -y install language-pack-zh-hant  或
sudo apt-get -y install language-pack-zh-hant language-pack-zh-hant-base  再执行locale命令设置当前locale环境
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命令的显示结果如下:
# 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)。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-454452-1-1.html 上篇帖子: Ubuntu下完全卸载Nginx 下篇帖子: Ubuntu系统redis安装部署入门
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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