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

本文介绍了如何使用iconv工具在Linux系统中解决CSV文件的中文乱码问题。首先,通过file命令查看文件编码格式,发现为ISO-8859-1。然后,尝试将文件从GBK转为UTF-8,遇到错误。最终,成功使用iconv将文件从GBK编码转换为UTF-8,解决了乱码问题。转换后,文件编码变为UTF-8并能正常显示中文。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杰哥的技术杂货铺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值