centos7 修改系统编码

这里在腾讯云上有一台 CentOS7 的云服务器,我使用git克隆了一个代码库进去,使用vi查看源代码时,发现文件里面的中文字都是乱码。所以研究了一下,可以按照下面的方式去修改。

你看到的代码应该类似下面这样

$this->title = !isset($_GET['id']) ? '添�~J| 管�~P~F�~Q~X' : '修�~T�管�~P~F�~Q~X';
$this->addBreadcrumb('系�~_管�~P~F�~Q~X', ['index']);

1. 查看系统编码

使用 locale 命令查看系统编码,我这里出现“C”这样的编码,明显是不对的。

$ locale

LANG=C
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=

2. 替换编码

这里我查看了另一台正常服务器上面的编码,如下:

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

所以这里只需要将编码 C 替换为 en_US.UTF-8 就可以了。

这里需要修改 /etc/locale.conf 文件

$ vi /etc/locale.conf

将内容修改为 LANG="en_US.UTF-8" 然后使用source命令使locale.conf文件生效.

source /etc/locale.conf

查看之前的乱码文件,中文是不是已经正常显示了?

如需转载,请注明出处: https://www.chadou.me/p/212

最新发布