使用Rfind查找非ASCII字符-ü

时间:2019-04-23 12:58:56

标签: python string parsing find

因此,我试图找到在提取的二进制缓冲区中出现的给定字符。该提取的二进制字符的字符恰好是一个u,上面有变音符号。我将如何查找该字符,因为当我尝试运行“文件中的非Ascii字符”脚本,失败文件的相关位置然后“但未声明编码”时,python会引发错误。

positionoflastu = ssidstring.rfind('ü')
tvname = ssidstring[lastu+1:]

非常感谢

1 个答案:

答案 0 :(得分:1)

听起来像Python在抱怨您的.py文件,而不是您的数据文件。完整的错误消息可能类似于:

SyntaxError:
Non-ASCII character '\xfc' in file foo.py on line 1,
but no encoding declared;
see http://python.org/dev/peps/pep-0263/ for details

您应该阅读该PEP。它将告诉您Python文件需要声明其编码。您已经说过,您不知道文件的编码,所以这对于您学习如何找出答案将是一件好事。同时,我们可以根据错误消息所抱怨的特定字节做出合理的猜测(这是为什么当您在StackOverflow上提问时,通常最好包含完整的错误消息)。

例如,如果错误消息抱怨\xfc,则您的文件可能使用Latin-1 / ISO-8859-1 / CP 1252编码。如果抱怨\c3,则您的文件可能是以UTF-8编码的。

因此您可以通过以下方法之一来克服此错误

# coding=cp1252

# coding=utf_8

作为Python源文件的第一行或第二行。