系统小窝欢迎您

当前位置:系统小窝 > 系统教程 > Linux教程 >

Ubuntu系统修改Locale时出现错误怎么解决?

时间:2021-04-10    来源:来了老弟    人气:

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: canlsquo;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系统

相关文章

发表评论

验证码: 看不清?点击更换

注:网友评论仅供其表达个人看法,并不代表本站立场。