Python:如何解析字符串中的非ASCII字符

时间:2019-05-29 18:17:20

标签: python encoding character-encoding python-unicode

在我的Python脚本中,我试图读取一个文本文件,该文件包含带有人们姓氏和名字的列,其中有些列具有非ASCII字符,例如ñ。但是当我这样做时,我得到了错误UnicodeDecodeError: 'utf8' codec can't decode byte 0x96 in position 66

从我一直在线阅读的内容来看,我知道您可以通过忽略或删除非ASCII字符来解决此问题,但是我不想这样做。是否可以直接将文件中的所有非ASCII字符转换为普通字符串?

当前,我正在使用infile = open(filename, 'rU')打开文件。

不重复的问题:我要问的是如何在具有Unicode字符的文件中读取,而不是如何将Unicode字符串写出到文件中。

1 个答案:

答案 0 :(得分:0)

  1. 复制文件。
  2. 确保您的文件采用unicode,并找出其使用的unicode格式。一些简单的编辑器(例如geany)可帮助您找到在创建文件时使用的正确编码。如果文件很大,则将其拆分,然后由编辑者对其进行处理。
  3. 使用正确的编码(也许是旧的cp编码)打开文件,然后将文件转换为utf8。或使用工具(如编辑器)将其转换为utf8