Linux文件导出到Windows乱码的问题
前言实习生很不满,我给业务统计的CSV格式表格,他们说乱码,自己就不会在Windows上面转一下编码吗?非要我在Linux上面转,为啥是乱码?Linux咋转啊?为啥乱码这个很明显Linux上面的文件是UTF-8的,但是本地用EXCEL打开CSV文件默认是GBK格式,编码不一致,所以就乱码咯Linux如何转编码自带命令 iconviconv -f 原编码 -t 新编码 filename -o new
·
前言
实习生很不满,我给业务统计的CSV格式表格,他们说乱码,自己就不会在Windows上面转一下编码吗?非要我在Linux上面转,为啥是乱码?Linux咋转啊?
为啥乱码
这个很明显Linux上面的文件是UTF-8的,但是本地用EXCEL打开CSV文件默认是GBK格式,编码不一致,所以就乱码咯
Linux如何转编码
自带命令 iconv
iconv -f 原编码 -t 新编码 filename -o newfile
-f : from 来源编码
-t : to 转换后新编码
-c: 忽略无效字符
-s: --silent,忽略警告
-o file : 可选,没有的话直接转换当前文件, 使用-o 保留源文件。
现实场景中常用的一套组合拳
- 查看文件编码
使用file
命令
语法:
file [-bcLvz][-f <名称文件>][-m <魔法数字文件>...][文件或目录...]
参数:
-b 列出辨识结果时,不显示文件名称。
-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-f<名称文件> 指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称。
-L 直接显示符号连接所指向的文件的类别。
-m<魔法数字文件> 指定魔法数字文件。
-v 显示版本信息。
-z 尝试去解读压缩文件的内容。
[文件或目录...] 要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件。
举例:
file data.csv
data.csv UTF-8 Unicode text
我们可以看到data.csv格式的文件是UTF-8格式的,于是就可以利用上面的iconv命令对其进行转码为GBK格式咯
iconv -f UTF-8 -t GBK data.csv
如果需要保留data.csv源文件,那么需要加-o参数
iconv -f UTF-8 -t GBK data.csv -o data1.csv
于是就可以把转换为GBK格式的data1.csv数据发给业务的人员咯
更多推荐
已为社区贡献3条内容
所有评论(0)