由于一些原因,我们经常会遇到Linux服务器下面显示乱码的问题,这是因为客户端,服务器,文件的字符集编码不一致导致的,这里我们说一下如何转换文件的字符集。
转换文件的字符集可以使用命令:
iconv -f {转换前字符集} -t {转换后的字符集} inputfile -o outputfile
注意,如果不指定-o参数的话,那么iconv只在平面上面打印文件,但是不会改变原来文件的字符集属性.
例如:我们需要将一个文件从utf-8 转换为 gb18030,命令如下:
iconv -f utf-8 -t gb18030 a.txt -o b.txt
当然,也可以通过重定向写到新文件中
iconv -f utf-8 -t gb18030 a.txt > b.txt
也可以结合ls -l命令来生成批量的转换文件的脚本,如下:
ls -lrt|awk '{print "iconv -f utf-8 -t gb18030 " $9 " -o " $9 ".new"}'
也可以通过find命令结合xargs或者 -exec, 直接进行转换