【问题标题】:UnicodeEncodeError: 'charmap' codec can't encode character u'\xfd' in python 2.7UnicodeEncodeError: 'charmap' 编解码器无法在 python 2.7 中对字符 u'\xfd' 进行编码
【发布时间】:2015-09-18 05:52:25
【问题描述】:

我从本地主机的不同网站下载不同的公司名称有时我会遇到这个问题,那就是中断下载过程。我的脚本在其他国家/地区运行良好,但是当我下载捷克共和国时,会发生这种类型的错误。

到目前为止处理的公司总数:0 Traceback(最近一次通话最后一次): 文件“process1.py”,第 261 行,在 print "Company Name: "+hit.text File "C:\Python27\lib\encodings\cp437.py", line 12, in encode return codecs.charmap_encode(input,errors,encoding_map) UnicodeEncodeError: 'charmap' codec can't encode character 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)

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

【问题讨论】:

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


    【解决方案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)
    

    【讨论】:

    • 谢谢队友!!!它解决了我的问题,但事实是,当我尝试下载伊朗时,会获取整个公司名称,但它无法存储 MySQL 服务器……我只是按照相同的程序编写脚本……你知道如何解决吗那个问题……@dm295
    • 尝试检查 MySQL 日志文件中的错误信息,同时检查 MySQL 编码设置
    猜你喜欢
    • 2015-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多