此代码抛出一些编码错误:
import re
import os
resume = re.sub(r'–', '', '–')
resume = re.sub(r'', '', '')
resume = re.sub(r'ï® ', '', 'ï® ')
print resume
错误:
File "script.py", line 4
SyntaxError: Non-ASCII character '\xc3' in file script.py on line 4, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
如何修复这些错误?
答案 0 :(得分:0)
通过添加前缀u
使其成为Unicode字符串:
import re
import os
import re
import os
resume = re.sub(ur'–', '', u'–')
print resume
resume = re.sub(ur'', '', u'')
print resume
resume = re.sub(ur'ï® ', '', u'ï® ')
print resume
输出空字符串。
或者将其转换为Unicode,然后在值包含在变量中时替换:
import re
import os
s1 = '–'
s2 = ''
s3 = 'ï® '
resume = re.sub(ur'–', '', unicode(s1))
print resume
resume = re.sub(ur'', '', unicode(s2))
print resume
resume = re.sub(ur'ï® ', '', unicode(s3))
print resume
答案 1 :(得分:0)
告诉Python如何解码文本:
#! coding: utf-8
......你的代码在这里......
答案 2 :(得分:0)
我不知道你在这里尝试用re.sub,
re.sub(r'–', '', '–')
但是要在你的情况下运行代码,只需添加:
#!/usr/local/bin/python
# -*- coding: utf-8 -*-
import os, sys
resume = re.sub(r'–', '', '–')
resume = re.sub(r'', '', '')
resume = re.sub(r'ï® ', '', 'ï® ')
print resume
这不会给你任何错误或任何输出,所以以这种方式更改re.sub。
resume = re.sub(ur'–', '', '–')
如果您正在使用2.x,请尝试将正则表达式字符串设置为Unicode转义字符串,并使用' u'。由于它是正则表达式,因此使用' r'将正则表达式字符串设为原始字符串是一种很好的做法。
答案 3 :(得分:-1)
使用此
unicode(<?add your value here>).encode("utf-8")
答案 4 :(得分:-1)
此外,您可以在 .py 文件的第一行添加此行:
# -*- coding: utf-8 -*-