GB18030编码转UTF-8

背景

下载了一份源码,当我在linux平台用nvim查看时,英文部分正常,但中文乱码。

由于作者是在windows平台编写的,处于历史原因,windows向后兼容了GBK系列的编码。

而几乎所有linux的/etc/locale.conf文件都使用utf-8。

解决

方法一:修改.nvimrc配置文件,加入以下内容:

set fileencodings=utf8,cp936,gb18030,big5

此方法属于修改文本编辑器,虽然nvim查看显示正常,但属于自欺欺人。编译运行起来还是会乱码。

方法二:将文件编码直接修改成utf-8

进入想要改变的文件的路径

cd path-GB18030-file/

找到当前路径下的所有文件,并将全部文件编码方式修改为UTF-8

find . -type f -print -exec iconv -f GB18030 -t utf-8 {} -o {} \;

1.如果只需要当前目录下的指定拓展名文件,则添加 -iname "*.cpp” 即可

2.如果不想覆盖当前文件,则在第二个花括号后添加希望保存的拓展名。如{}.utf-8,最后文件会是xxx.cpp.utf-8,并且保留原来的xxx.cpp文件。