UnicodeEncodeError:'charmap'编解码器无法在python 2.7中编码字符u'\ xfd'

时间:2015-07-01 07:30:38

标签: mysql python-2.7 beautifulsoup lxml command-prompt

我从我的localhost下载来自不同网站的不同公司名称有时我遇到这个问题,这是中断下载程序。我的脚本对其他国家工作正常但是当我下载捷克共和国时发生了这种类型的错误。

  

到目前为止处理的公司总数:0 Traceback(最近一次调用最后一次):   文件“process1.py”,第261行,in       print“公司名称:”+ hit.text文件“C:\ Python27 \ lib \ encodings \ cp437.py”,第12行,编码       return codecs.charmap_encode(input,errors,encoding_map)UnicodeEncodeError:'charmap'编解码器不能编码字符u'\ xfd'in   位置3 3:角色映射到

我的代码在这里:

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)

我不知道为什么会这样。这个问题有什么建议吗?

1 个答案:

答案 0 :(得分:1)

捷克语包含许多非ASCII字符。 u'\xfd'ý的unicode表示形式。您需要解码UTF-8。更好的解决方案是检测您正在使用的网站编码使用的内容并解码到该网站。

if companyAlreadyKnown == 0:
    for hit in soup2.findAll("h1"):
        company_name = hit.text.decode('utf-8')

        print "Company Name: " + company_name

        flog.write("\nCompany Name: " + pCompanyName)
        companyObj.setCompanyName(company_name)