如何将UTF-8编码的CSV文件转换为GBK编码?

我们公司产生的CSV文件一般默认都是UTF-8编码的(考虑到通用性),如果用Excel直接打开就会显示为乱码形式的,这是因为在中文Windows环境下,Excel默认的字符编码是GBK。

所以要想让Excel正常显示,我们需要先将CSV文件从UTF-8编码修改为GBK编码。如何操作呢?这是我们客户经常会问到的问题。

其实方法很简单:
1)用UltraEdit打开我们要处理的CSV文件。

2)文件 -> 另存为,编码选择“ANSI/ASCII”,保存即可。如下图所示。
在这里插入图片描述
PS:同理,我们也可以将GBK另存为UTF-8。

如果是在Linux系统下,可以使用iconv命令来转换,例如:

iconv -f UTF-8 -t GBK utf8_file.csv -o gbk_file.csv

也可以结合find命令的exec参数实现批量转换功能,例如下面的命令将会把当前目录下的所有CSV文件从UTF-8编码转换为GBK编码,另存为“GBK_”加原始文件名:

find *.csv -type f -exec iconv -f UTF-8 -t GBK {} -o GBK_{} \;

原文:http://www.site-digger.com/html/articles/20150714/93.html

UTF-8GBK编码CSV文件统一转换为UTF-8,可以通过Python等工具轻松完成。下面是一个简单的步骤说明以及示例代码: ### 步骤: 1. **检测当前文件编码**:先判断输入文件的实际编码(如UTF-8GBK)。 2. **读取内容并解码**:根据原始编码读取文件,并将其内容转化为Unicode字符串。 3. **重新编码保存**:再以UTF-8编码格式写出到新的文件。 以下是基于`chardet`库来自动探测编码的一个例子: ```python import chardet def convert_to_utf8(file_path, output_file): # 先读取原文件数据并尝试检测其编码 with open(file_path, 'rb') as f: raw_data = f.read() result = chardet.detect(raw_data) encoding = result['encoding'] if not encoding or encoding.lower() == "utf-8": print("The file is already in UTF-8.") else: try: decoded_text = raw_data.decode(encoding) # 按照检测出的编码进行解码 with open(output_file, 'w', encoding='utf-8') as out_f: out_f.write(decoded_text) # 再按UTF-8写入新文件 print(f"File has been converted to UTF-8 and saved at {output_file}") except Exception as e: print(f"Error occurred during conversion: {e}") # 调用函数,传入源文件路径及目标输出文件名即可开始处理 convert_to_utf8('input.csv', 'converted_output.csv') ``` #### 注意事项 - 确保安装了 `chardet` 库 (`pip install chardet`) 或者可以换成更先进的 `charset-normalizer`. - 如果遇到一些复杂情况比如混合编码,则需要人工检查确认具体哪些部分存在问题然后针对性解决。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值