您当前的位置: 首页 > 
  • 2浏览

    0关注

    212博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

iconv工具解决csv文件中文乱码问题

杰哥的技术杂货铺 发布时间:2021-03-08 21:07:54 ,浏览量:2

文章目录
        • 1、iconv 简介
        • 2、iconv用法
        • 3、csv文件中文乱码问题解决

1、iconv 简介

iconv是知名的开源跨平台编码转换库,iconv.exe是iconv库在windows下的命令行工具

作用为:对于给定文件把它的内容从一种编码转换成另一种编码。

2、iconv用法
# iconv --help

-f encoding :把字符从encoding编码开始转换。 
-t encoding :把字符转换到encoding编码。 
-l :列出已知的编码字符集合 
-o file :指定输出文件 
-c :忽略输出的非法字符 
-s :禁止警告信息,但不是错误信息 
--verbose :显示进度信息 
-f和-t所能指定的合法字符在-l选项的命令里面都列出来了。 
  • 列出当前支持的字符编码:
# iconv -l 
  • 将文件file1转码,转后文件输出到fil2中:
# iconv  -f EUC-JP-MS -t UTF-8 file1 -o file2   //没-o那么会输出到标准输出. 
3、csv文件中文乱码问题解决
  • 1、查看文件存储格式(文件编码格式)
# file test.csv 
test.csv: ISO-8859 text, with CRLF, LF, NEL line terminators

或者
# file --mime-encoding test.csv
test.csv: iso-8859-1

2、查看系统语言设置

# cat /etc/locale.conf
LANG=en_US.UTF-8

注:可以看出该centos系统是以UTF-8编码的

  • 3、编码转换

利用iconv工具将文件从ISO-8859转换成UTF-8

命令:

# iconv -f ISO-8859 -t UTF-8 test.csv -o test2.csv

结果出现以下报错:
iconv: conversion from `ISO-8859' is not supported
Try `iconv --help' or `iconv --usage' for more information.

解决方案:将ISO-8859换成GBK

命令:

# iconv -f GBK -t UTF-8 test.csv -o test2.csv
iconv: illegal input sequence at position 12656765
  • 4、查看输出后的文件编码,编码格式已改变
# file 2.csv 
2.csv: UTF-8 Unicode text, with CRLF, LF line terminators

编码格式改变后的输出文件已经可以正常显示中文吗,不再乱码!!!

参考文档:

  • https://www.cnblogs.com/cosiray/archive/2012/05/04/2483111.html
  • https://blog.csdn.net/li0524158198/article/details/40632701
  • https://www.cnblogs.com/wqbin/p/11719952.html
关注
打赏
1666063422
查看更多评论
立即登录/注册

微信扫码登录

0.1063s