Python csv模块编码报错求助:无法编码字符'u202f'
解决Python csv模块写入时的charmap编码错误
问题原因
你遇到的错误是因为打开CSV文件时用了系统默认的charmap编码(比如Windows下的GBK),这种编码不支持U+202F(窄不换行空格)这类Unicode字符,导致写入时无法完成编码转换。
解决方案
方法一:指定UTF-8编码(推荐)
打开文件时明确指定encoding='utf-8',同时加上newline=''避免csv模块处理换行符时出现异常:
import csv with open('目标文件.csv', 'w', encoding='utf-8', newline='') as file: wr = csv.writer(file) wr.writerows(unpacking)
UTF-8支持所有Unicode字符,能从根本上解决这类编码兼容问题。
方法二:忽略或替换无法编码的字符(不推荐)
如果因为特殊需求必须使用系统默认编码,可以通过errors参数跳过或替换无法编码的字符,但会丢失或修改原字符:
import csv # 忽略无法编码的字符 with open('目标文件.csv', 'w', errors='ignore', newline='') as file: wr = csv.writer(file) wr.writerows(unpacking) # 用?替换无法编码的字符 with open('目标文件.csv', 'w', errors='replace', newline='') as file: wr = csv.writer(file) wr.writerows(unpacking)
内容的提问来源于stack exchange,提问作者Benyamin
相关产品推荐
相关产品推荐

