mysql - Unicode编码错误: 'charmap' codec can't encode character u'\xfd' in python 2. 7

标签 mysql python-2.7 beautifulsoup lxml command-prompt

我从本地主机的不同网站下载不同的公司名称,有时我会遇到这个问题,即中断下载过程。我的脚本对于其他国家/地区工作正常,但当我下载捷克共和国时,会发生这种类型的错误。

Total companies processed so far:0 Traceback (most recent call last): File "process1.py", line 261, in 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 position 3 3: character maps to

我的代码在这里:

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)

我不知道为什么会发生这种情况。对此问题有什么建议吗?

最佳答案

捷克语包含大量非 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 - Unicode编码错误: 'charmap' codec can't encode character u'\xfd' in python 2. 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31155125/

相关文章:

php - MySQL 中的外键是强制性的吗?

python - 无法将稀疏矩阵写入 csv

Python for 循环总是使用 else 语句

mysql - 禁用 MySQL 严格模式

PHP:通过电子邮件连接数据库结果

python - 在 Python EVE 中自定义资源端点的授权

python - 删除 Pandas 数据框中多次出现的重复值

python - 使用多个 token 发布 CSRF token ?

python - 如何为 python3 中循环创建的每一行添加一个静态值?

mysql - 使用 like vs group by 聚合函数的 SQL 查询 - 性能