中文版ubuntu的ls命令有乱码

系统字体配置、中文显示和输入法问题
回复
qiaoqiangv
帖子: 5
注册时间: 2016-05-01 22:09
系统: ubuntu 12.04

中文版ubuntu的ls命令有乱码

#1

帖子 qiaoqiangv » 2016-09-03 21:24

如图,在ls -l命令下,有乱码怎么办?
版本是ubuntu-12.04.5
$ls -l
-rw-rw-r-- 1 qq qq 33 9�� 3 20:05 ecrypt-home-folder-passphrase.txt
-rw-r--r-- 1 qq qq 8445 9�� 3 19:55 examples.desktop
drwxr-xr-x 2 qq qq 4096 9�� 3 19:59 公共的
drwxr-xr-x 2 qq qq 4096 9�� 3 19:59 模板
drwxr-xr-x 2 qq qq 4096 9�� 3 19:59 视频
drwxr-xr-x 2 qq qq 4096 9�� 3 21:13 图片
drwxr-xr-x 2 qq qq 4096 9�� 3 19:59 文档
drwxr-xr-x 2 qq qq 4096 9�� 3 21:10 下载
drwxr-xr-x 2 qq qq 4096 9�� 3 19:59 音乐
drwxr-xr-x 2 qq qq 4096 9�� 3 19:59 桌面
附件
中文ubuntuls命令.png
poloshiao
论坛版主
帖子: 18279
注册时间: 2009-08-04 16:33

Re: 中文版ubuntu的ls命令有乱码

#2

帖子 poloshiao » 2016-09-04 9:06

把下面指令 複製 貼進終端機 執行
locale
把結果全部直接 選取/複製/貼上來
qiaoqiangv
帖子: 5
注册时间: 2016-05-01 22:09
系统: ubuntu 12.04

Re: 中文版ubuntu的ls命令有乱码

#3

帖子 qiaoqiangv » 2016-09-04 15:47

$ locale
LANG=zh_CN.UTF-8
LANGUAGE=zh_CN:zh
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC=zh_CN
LC_TIME=zh_CN
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY=zh_CN
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER=zh_CN
LC_NAME=zh_CN
LC_ADDRESS=zh_CN
LC_TELEPHONE=zh_CN
LC_MEASUREMENT=zh_CN
LC_IDENTIFICATION=zh_CN
LC_ALL=
poloshiao
论坛版主
帖子: 18279
注册时间: 2009-08-04 16:33

Re: 中文版ubuntu的ls命令有乱码

#4

帖子 poloshiao » 2016-09-04 17:46

$ls -l
-rw-rw-r-- 1 qq qq 33 9�� 3 20:05 ecrypt-home-folder-passphrase.txt
1. 應該是
-rw-rw-r-- 1 qq qq 33 9 3 20:05 ecrypt-home-folder-passphrase.txt
1-1. 如果其它中文顯示都沒問題 那麼可能是 LC_TIME 時間格式錯誤引起的
LC_TIME=zh_CN
2. 應該是
LC_TIME="zh_CN.UTF-8"
2-1. https://help.ubuntu.com/community/Local ... t_settings
LC_TIME
How your time and date are formatted. Use for example "en_DK.UTF-8" to get a 24-hour-clock in some programs.

3. 暫時解決方案
把下面指令 複製 貼進終端機 執行
export LC_TIME="zh_CN.UTF-8"
3-1. 再試試
ls -l
把結果全部直接 選取/複製/貼上來

4. 上述 export 指令 重開機 就會回復原值 所以是暫時性
要永久性 請再貼文

5. 你還有其它 locale 是 zh_CN
可能需要一併更正 除非你是有意這樣設定
qiaoqiangv
帖子: 5
注册时间: 2016-05-01 22:09
系统: ubuntu 12.04

Re: 中文版ubuntu的ls命令有乱码

#5

帖子 qiaoqiangv » 2016-09-05 21:28

试了这个命令
export LC_TIME="zh_CN.UTF-8"
然后可以正常显示日期了

请问要永久生效的话要怎么设置?
poloshiao
论坛版主
帖子: 18279
注册时间: 2009-08-04 16:33

Re: 中文版ubuntu的ls命令有乱码

#7

帖子 poloshiao » 2016-09-06 15:53

要永久生效的话要怎么设置?
$ locale
LANG=zh_CN.UTF-8
LANGUAGE=zh_CN:zh
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC=zh_CN
LC_TIME=zh_CN
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY=zh_CN
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER=zh_CN
LC_NAME=zh_CN
LC_ADDRESS=zh_CN
LC_TELEPHONE=zh_CN
LC_MEASUREMENT=zh_CN
LC_IDENTIFICATION=zh_CN
LC_ALL=
1. 要徹底解決 需要知道 上面
沒有 .UTF-8 的 zh_CN
是如何產生的

2. locale 的影響檔案 很多 也很複雜
2-1. 想要有個概念 參閱
https://help.ubuntu.com/community/Locale
Locale

3. 下面是一個懶人方法
不管前面 如何設定
就是 以這個設定檔案 ~/.profile 來覆蓋掉前面的設定
意思是 不花時間 去探究前面的設定
3-1. 方法
gedit ~/.profile
在最後面 加上這一行
export LC_TIME="zh_CN.UTF-8"
3-2. 登出 再登入 或 重開機
試試
ls -al

sudo ls -al
3-3. 其它
zh_CN
也可以依樣解決
3-5. 詳細參閱
https://help.ubuntu.com/community/Envir ... 2F.profile
qiaoqiangv
帖子: 5
注册时间: 2016-05-01 22:09
系统: ubuntu 12.04

Re: 中文版ubuntu的ls命令有乱码

#8

帖子 qiaoqiangv » 2016-09-15 13:09

谢谢了,问题已经解决。

使用export命令在/etc/profile添加环境变量的值就可以了
回复