html DOM:测试编码/解码的好测试网页

时间:2013-06-14 11:23:19

标签: python encoding character-encoding

我正在做的是:

  • 通过javascript,阅读网页的DOM
  • 转换为json字符串
  • 作为ajax发送到python
  • 在Python中,json将字符串解码为对象

我想要的是json中的任何文本都是unicode以避免任何字符问题。我以前常常使用beautifulsoup:

from bs4 import * 
from bs4.dammit import UnicodeDammit
text_unicode = UnicodeDammit(text, [None, None], "html", True).unicode_markup

但这不适用于json字符串。当我尝试json解码时,通过UnicodeDammit运行字符串会导致错误。

问题是,我甚至不确定收集DOM是否会自动处理此问题。

首先,我想要一系列测试网页来测试这一点。其中一个用utf-8编码,另一个用其他东西编码等等。如果你认为它是utf-8但是它不是,那就使用看起来不对的字符。请注意,我甚至不打算考虑网页的声明编码。这常常是错误的。

1 个答案:

答案 0 :(得分:0)

您正在尝试解决不存在的问题。

浏览器负责检测和处理网页编码。它将根据服务器标头,HTML页面中的元标记以及需要时进行简单猜测来确定正确的编码。 DOM为您提供Unicode数据。

JSON处理Unicode数据;将JSON数据发送到Python进程会发送适当编码的字节数据,任何正常的JSON库都会为您返回到Unicode值。 Python json模块就是这样一个库。

只需使用json.load()json.loads()函数加载JavaScript脚本中的数据。您的浏览器已经使用了正确的编码(很可能是UTF-8),而Python json模块将解码所使用的任何标准编码,而无需额外的配置或处理。