Linux 中文为啥有时候乱码?

1,038 阅读2分钟

操作系统语言

平时使用电脑或者手机时,在安装系统的时候,都会需要选择语言,如果选择中文,那么界面里所有操作选项(包括文件里属于中文的内容)都是中文,选择英文都是英文.

但是当你登陆到一台linux机器上时,你可能觉得所有命令操作都是通过命令行,这些命令都是英文的啊,怎么可能有中文的语言环境啊,难道输入中文命令行吗?

实际对于linux依旧有两个语言环境, 只不过在linux叫字符集, 并且是通过环境变量的形式存在的(修改起来就很方便,不像windows基本需要通过重装系统来变更语言), 因此如果你想要你的linux服务器正确的显示中文,就需要对字符集进行修改(安装linux系统的时候,默认都是英文的)

linux 字符集如何修改?

默认的英文字符集是:en_US.UTF-8

常用的中文字符集是:zh_CN.UTF-8

后缀的UTF-8是说的编码方式,常见的有ASCII、GBK等,有兴趣了解区别的可以看我另一篇帖子ASCII、Unicode、GBK、UTF-8的爱恨纠葛 #掘金文章# juejin.cn/post/690749…

如何查看某台linux服务器的字符集?

locale 是什么

使用

locale

使用locale命令后的结果

locale各字段的含义

LANG和LC_ALL是特殊的变量

修改当前登陆窗口的字符集

正常情况下 我们不会单独修改除了LANG和LC_ALL之外的某个单独的变量,当然你的需求只是修改其中某个的话,就根据你的需要修改

例如修改时间显示格式为中文

export LC_TIME=zh_CN.UTF-8

修改LANG变量:除了LC_ALL外所有变量都跟着发生变化

export LANG=zh_CN.UTF-8

修改LC_ALL变量:比修改LANG优先级更高 LC_ALL设置了 LC*都会变化 同时无法单独设置其中某个值

export LC_ALL=zh_CN.UTF-8

修改服务器本身的字符集(每次登陆无需重新设置)

vim ~/.bashrc

根据需要加入

export LANG=zh_CN.UTF-8 或者 export LC_ALL=zh_CN.UTF-8

保存文件退出

source ~/.bashrc

使修改生效