终端中文显示乱码

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
xhsh
帖子: 318
注册时间: 2007-06-21 2:52

终端中文显示乱码

#1

帖子 xhsh » 2016-10-08 16:20

我的16.04是全新安装的。但home目录是原来的,用户名也是原来的。现在建立了一个原来相同的用户,相当于个人的设置都是原来的。但现在终端的中文显示乱码。而当建立一个新用户,利用这个新用户登录进入看我原来文件下的文件时,则所有的中文显示都正常。请问这是怎么回事?难道我个人的文件夹下还有什么设置造成干扰?应该修改哪个文件?谢谢!
poloshiao
论坛版主
帖子: 18279
注册时间: 2009-08-04 16:33

Re: 终端中文显示乱码

#2

帖子 poloshiao » 2016-10-08 16:37

现在建立了一个原来相同的用户,
登入原來的用戶
把下面指令 複製 貼進終端機 執行
locale
把結果全部直接 選取/複製/貼上來
建立一个新用户
登入新用戶
把下面指令 複製 貼進終端機 執行
locale
把結果全部直接 選取/複製/貼上來
xhsh
帖子: 318
注册时间: 2007-06-21 2:52

Re: 终端中文显示乱码

#3

帖子 xhsh » 2016-10-08 20:57

原来用户运行locale:
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=zh_CN.GBK
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.GBK"
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=
新建的用户运行locale:
LANG=zh_CN.UTF-8
LANGUAGE=zh_CN:
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=
/etc/default/locale里的内容为:
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:"
LC_CTYPE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
xhsh
帖子: 318
注册时间: 2007-06-21 2:52

Re: 终端中文显示乱码

#4

帖子 xhsh » 2016-10-08 21:01

当我把新用户下运行locale产生的结果替换掉/etc/default/locale里的内容,则又恢复正常了。但我还是想知道,我原来的账户下到底哪里做了错误设置。
头像
astolia
论坛版主
帖子: 6703
注册时间: 2008-09-18 13:11

Re: 终端中文显示乱码

#5

帖子 astolia » 2016-10-09 9:34

你自己不都贴出来了么
原来用户:LANG=zh_CN.GBK
新建用户:LANG=zh_CN.UTF-8
xhsh
帖子: 318
注册时间: 2007-06-21 2:52

Re: 终端中文显示乱码

#6

帖子 xhsh » 2016-10-09 10:35

astolia 写了:你自己不都贴出来了么
原来用户:LANG=zh_CN.GBK
新建用户:LANG=zh_CN.UTF-8
是的,我的意思是,我不知道原来用户的设置“LANG=zh_CN.GBK”是在哪里设置的,或者是在哪个文件中设置的。
poloshiao
论坛版主
帖子: 18279
注册时间: 2009-08-04 16:33

Re: 终端中文显示乱码

#7

帖子 poloshiao » 2016-10-09 16:01

我的意思是,我不知道原来用户的设置“LANG=zh_CN.GBK”是在哪里设置的,或者是在哪个文件中设置的。
1. locale 環境變數 後面讀取的變數值 會覆蓋掉 前面讀取的變數值
通常 /etc/default/locale 是第一個讀取的變數值
当我把新用户下运行locale产生的结果替换掉/etc/default/locale里的内容,则又恢复正常了
2. 猜測 除了 /etc/default/locale
應該沒有其它 locale 環境變數設定檔 含有 “LANG=zh_CN.GBK”

3. /etc/default/locale 通常是 安裝時 預設 跟你安裝選擇的 語言一致 應該是 LANG=zh_CN.UTIF-8
3-1. Ubuntu (或說 Linux) 的套件 應該預設都是 LANG=zh_CN.UTIF-8
意思是 從 Ubuntu 套件庫 安裝 套件 應該不會改變 LANG=zh_CN.UTIF-8 為 LANG=zh_CN.GBK
3-2. 想想 你何時安裝過 LANG=zh_CN.GBK 語言編碼的程式套件 (例如 安裝 Wine) 或 手動去更改過 /etc/default/locale

4. 進一步 參閱
https://help.ubuntu.com/community/EnvironmentVariables
Environment Variables
使用 LANG 關鍵字 搜尋
回复