【问题标题】:Downloading different language webpage using web python使用 web python 下载不同语言的网页
【发布时间】:2013-03-21 20:55:15
【问题描述】:

我正在尝试使用 python 中的 mechanize 模块下载网页(俄语)(我的电脑只使用英语)。我收到以下错误

UnicodeEncodeError: 'ascii' codec can't encode characters in position 50-59

谁能告诉我如何纠正这些类型的错误或它们的含义?

【问题讨论】:

  • 请向我们展示您的代码。以及 URL,或者至少是标题和 <HEAD> 节点。并告诉我们您使用的是 Python 2.x 还是 3.x,因为答案会有所不同。但基本思想是您必须使用正确的编解码器将字节解码为 Unicode,而不是 'ascii'。无论是 UTF-8 还是某些 Windows 俄语代码页,您都应该能够从数据中分辨出来。

标签: python beautifulsoup mechanize


【解决方案1】:

长话短说,您的原始字符串未以 ASCII 编码,这意味着当尝试打印字符时,python 不知道该怎么做,因为原始字符代码超出了 ASCII 范围。

这是 ASCII 表及其支持的字符:http://www.asciitable.com/

你可以使用say来转换你的角色: Python - Encoding string - Swedish Letters


或者你可以这样做:

(这是解决很多编码问题的方法)


编辑:C:\Python??\Lib\Site.py 将“del sys.setdefaultencoding”替换为“pass”,如下所示:

然后,
将其放在代码的顶部:

sys.setdefaultencoding('latin-1')

修复瑞典语/非 UTF8 兼容字符的圣杯。 我不确定 latin-1 会覆盖你所有的俄语字符,如果它不知道你可能知道的编码(例如:ISO-8859-15 或其他东西)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-04
    • 2014-12-31
    • 1970-01-01
    • 1970-01-01
    • 2017-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多