为了解决这个乱码,需要对文件进行转码,具体如下:
1、前提保证已安装了convmv;
2、具体convmv的用法:
convmv
–f
源编码
–t
新编码
[选项]
文件名
一般常用参数:
-r
递归处理子目录
--notest
真正进行 *** 作,默认情况下是不对文件进行真实 *** 作的,只是一个预览
--list
显示所有支持的编码
--unescap
可以做一个转义
3、比如我们有一个utf8的文件名,要求转换成gbk编码,命令如下:
convmv
–f
utf-8
–t
gbk
–notest
文件名
也可以使用linux下最好用的编码转换工具iconv来进行转码 *** 作。
例子:将gbk编码的文件转换成utf-8
iconv
-f
gbk
-t
utf-8
gbkfile.txt
>
utf8file.txt
Linux中文显示不正常大多是终端字符集设置的不对,因为终端屏幕显示信息是以设置的语言来显示的,如果语言是英文或者其他编码语言设置,显示中文时就是乱码。设置终端字符集需要设置LANG这个环境变量,设置方法是在终端输入LANG=zh_CN.UTF-8,设置好LANG变量后,再在终端上用ls命令查看一下带有中文的文件名应该就有效果了。如果经过上面的设置后,用ls命令可以正常列出中文文件名了,那就最好将LANG=zh_CN.UTF-8这一行添加到~/.bashrc这个配置文件中,然后执行命令:source
~/.bashrc,使配置文件的设置马上生效,这样终端就被完美的设置成UTF-8中文编码了。
Windows下的文字到了Linux下乱码原因是Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8,编码格式不相同导致的乱码。
几种解决办法如下:
1、在Windows上用记事本把文件,选择另存为编码方式改为 UTF-8;
2、在Linux上用vim编辑,在命令模式下输入:
:set fileencoding=utf-83、iconv 转换,iconv的命令格式如下:
iconv -f encoding -t encoding inputfile#比如将一个GBK编码的文件转换成UTF-8编码
iconv -f UTF-8 -t GBK file1 -o file2
#转码后,在Linux上面就不会乱码了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)