UnicodeEncodeError:'ascii'编解码器无法以特殊名称对字符进行编码

时间:2015-06-30 11:53:35

标签: python unicode encoding beautifulsoup ascii

我的python(ver 2.7)脚本运行良好,从本地html文件中获取一些公司名称但是当涉及到某个特定的国家/地区名称时,它会出现此错误“UnicodeEncodeError:'ascii'compodec无法编码字符”< / p>

此公司名称出现时特别收到错误

公司名称:KühlfixKälteanlagenIng.GerhardDoczekal&amp;有限公司

无法处理链接

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)

2 个答案:

答案 0 :(得分:220)

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

示例 -

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

以上内容应将默认编码设置为utf-8

答案 1 :(得分:32)

你真的想这样做

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

这是unicode presentation中描述的“编码延迟”策略(幻灯片32到35)。