Python 3读取CSV文件UTF-8编码转换失败问题求助
解决CSV读取时的编码乱码问题
你遇到的是双重编码导致的乱码——原文件里的内容是把原本UTF-8编码的文本误以Latin-1(或ISO-8859-1)解码后,又重新用UTF-8编码保存,直接用utf-8读取就会出现嵌套乱码。
给你两个可行的解决方法:
直接指定编码读取
试试用latin-1编码读取文件,这是最直接的方式:df = pd.read_csv('formula_e_race_results.csv', usecols=["driver"], encoding="latin-1")读取后应该就能得到正确的
António Félix da Costa和Jérôme d'Ambrosio。手动修复已读取的乱码
如果上面的方法没生效,先以utf-8读取,再对乱码字符串做编码还原:# 先读取得到乱码数据 df = pd.read_csv('formula_e_race_results.csv', usecols=["driver"], encoding="utf-8") # 修复driver列的编码:转成latin-1字节再用utf-8解码 df['driver'] = df['driver'].apply(lambda x: x.encode('latin-1').decode('utf-8'))
简单说下原因:正确的带重音字符比如ó,UTF-8编码是两个字节,要是被当成Latin-1解码就会变成两个奇怪的字符,再把这两个字符存成UTF-8就会出现你看到的多层乱码。反向操作就能把字符还原回原本的样子。
内容的提问来源于stack exchange,提问作者sdeb
相关产品推荐
相关产品推荐

