UnicodeEncodeError: 'ascii' codec can't encode character at special name

UnicodeEncodeError: 'ascii' codec can't encode character at special name

我的 python(2.7 版)脚本 运行 很好地从本地 html 文件中获取一些公司名称,但是当涉及到某些特定的国家/地区名称时,它会出现此错误"UnicodeEncodeError: 'ascii' codec can't encode character"

特别是这个公司名出现时报错

公司名称:Kühlfix Kälteanlagen Ing.Gerhard Doczekal & Co. KG

无法处理link

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)

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

例子-

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

上面应该设置默认编码为 utf-8 .

你真的很想这样做

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

这是本 unicode presentation(幻灯片 32 到 35)中描述的 "encode late" 策略。