linux下文件转码
最近两天因为项目中的原始文件编码格式为cp936,而程序处理的是utf-8,所以需要对其转换,想来也不是很麻烦,但是还是遇到了很多坑,所以记下,可能会帮到别人。
linux下有多种转换文件编码格式的方法,但最常用的转换工具是vim和iconv。
在很多地方都看了使用vim编辑器转码,但是我对其表示怀疑,因为测试过多次都不咋成功,可能还需要手动添加支持的编码格式,总之还是比较麻烦。而且打开vim转码也只是适用于少量非生产环境中,总之我只推荐使用vim查看编码格式,不推荐使用vim转码。
一、VIM
1.1 查看文件编码格式
1 | set fileencoding |
1.2 格式转换
1 | set fileencoing= encoding //加上自己需要的编码格式即可 |
我在ubuntu和centos上都测试过,都没能转换成功。。。。 所以对此方法表示怀疑
二、iconv
官方文档
1 | [root@master test]# iconv -? |
2.1 查看支持的编码格式
1 | iconv -l |
2.2 转换
1 | iconv -f encoding1 -t encoding2 filename1 -o filename2 |
-f : 原编码格式
-t: 转换后格式
一定要输出到文件中,否则只会标准输出到显示器中
我这边无法将utf-8转换为cp936 ,gbk ,gb2312
但可以将cp936转换为utf-8,对于日常也够了
2.3 常见问题
首次使用可能需要安装
1
2ubuntu等:apt-get install iconv
centos等:yum install iconviconv: 未知 *** 处的非法输入序列
,加-c
1
iconv -c -f encoding1 -t encoding2 filename1 -o filename2
转换后乱码。建议转码输出到另外一个文件中,猜测输出到源文件中即直接转码可能会引起文件内容紊乱。。。
发布时间: 2020-05-18 18:00:10
更新时间: 2022-04-18 15:58:26
本文链接: https://wyatt.ink/posts/Linux/f48fda8c.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!