我正在做的是:
我想要的是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但是它不是,那就使用看起来不对的字符。请注意,我甚至不打算考虑网页的声明编码。这常常是错误的。
答案 0 :(得分:0)
您正在尝试解决不存在的问题。
浏览器负责检测和处理网页编码。它将根据服务器标头,HTML页面中的元标记以及需要时进行简单猜测来确定正确的编码。 DOM为您提供Unicode数据。
JSON处理Unicode数据;将JSON数据发送到Python进程会发送适当编码的字节数据,任何正常的JSON库都会为您返回到Unicode值。 Python json
模块就是这样一个库。
只需使用json.load()
或json.loads()
函数按加载JavaScript脚本中的数据。您的浏览器已经使用了正确的编码(很可能是UTF-8),而Python json
模块将解码所使用的任何标准编码,而无需额外的配置或处理。