这里在腾讯云上有一台 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
查看之前的乱码文件,中文是不是已经正常显示了?