如何解决Python

时间:2017-02-01 09:15:54

标签: python encoding

此代码抛出一些编码错误:

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

如何修复这些错误?

5 个答案:

答案 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 -*-