UnicodeEncodeError: ‘ ascii’编解码器不能以特殊名称编码字符

我的 python (版本2.7)脚本运行良好,可以从本地 html 文件中获得一些公司名称,但是当涉及到一些特定的国家名称时,它会出现这样的错误: “ UnicodeEncodeError: ‘ ascii’codec can’t encode string”

特别是这个公司名字出现的时候

公司名称: 格哈德 · 多切卡尔公司

无法处理该链接

Traceback (most recent call last):
File "C:\Python27\Process2.py", line 261, in <module>
flog.write("\nCompany Name: "+str(pCompanyName))
UnicodeEncodeError: 'ascii' codec can't encode character u'\xfc' in position 9: ordinal not in range(128)

在这行代码中出现的错误:

if companyAlreadyKnown == 0:
for hit in soup2.findAll("h1"):
print "Company Name: "+hit.text
pCompanyName = hit.text
flog.write("\nCompany Name: "+str(pCompanyName))
companyObj.setCompanyName(pCompanyName)
157673 次浏览

尝试在脚本的开头将系统默认编码设置为 utf-8,以便所有字符串都使用这种方法进行编码。

例子-

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

上面的代码应该将默认编码设置为 utf-8

你真的想这么做吗

flog.write("\nCompany Name: "+ pCompanyName.encode('utf-8'))

这是本 Unicode 演示文稿(幻灯片32到35)中描述的“编码后期”策略。