我正在使用以下正则表达式来搜索和删除这些字符。
invalid_unicode = re.compile(ur'(Û|²|°|±|É|¹|Í)')
我在ASCII编码的源代码,每当我尝试运行脚本时它会吐出来:
SyntaxError:第273行文件./release.py中的非ASCII字符'\ xdb',但未声明编码;有关详细信息,请参阅http://www.python.org/peps/pep-0263.html
如果我按照指定网站上的说明操作,并将utf-8
放在第二行编码上,则我的脚本不会运行。相反,它给了我这个错误:
语法错误:( unicode错误)'utf8'编解码器无法解码位置0的字节0xdb:意外的数据结束
如何在ASCII编写的脚本中运行这个正常的表达式,这个脚本非常棒。
答案 0 :(得分:3)
您需要找出编辑器正在使用的编码,并根据PEP263进行设置;或者,使事情更加稳定和便携(尽管可能性稍差)并在字符串文字中使用转义序列,即使用u'(\xdb|\xb2|\xb0|\xb1|\xc9|\xb9|\xcd)'
作为re.compile
调用的参数。
答案 1 :(得分:1)
在告诉Python您的源文件使用UTF-8编码后,您是否真的确保编辑器使用UTF-8编码保存文件?您收到的错误表明您的编辑器可能没有使用UTF-8。
您使用的是哪种文字编辑器?
答案 2 :(得分:0)
\x{c0de}
在正则表达式中,匹配代码点c0de
处的Unicode字符。
Python使用PCRE,对吗? (如果没有,则可能是\uC0DE
而不是......)