Python HTMLDOM:用于测试编码/解码的良好测试网页

Python HTMLDOM:用于测试编码/解码的良好测试网页,python,encoding,character-encoding,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], "htm

我正在做的是:

  • 通过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解码时,通过UnicodeMit运行该字符串会导致错误

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


首先,我希望有一系列的测试网页来测试这一点。其中一个是用utf-8编码的,另一个是用其他东西编码的,等等,如果你认为它是utf-8,但它不是,那么它使用的字符看起来是错误的。请注意,我甚至不考虑网页的指定编码。这通常是错误的。

您试图解决一个不存在的问题

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

JSON处理Unicode数据;将JSON数据发送到Python进程会发送经过适当编码的字节数据,任何像样的JSON库都会将这些字节数据转换回Unicode值。Python
json
模块就是这样一个库


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

json.load()
为您处理Unicode;你为什么要自己破译这个?JSON是一种将字符串视为Unicode值的标准。我正在尝试确定是否需要担心解码。这就是为什么我想要一些测试页面。假设这个网页是用utf-8编码的。然后信息将以utf-8编码的形式发送到Python,对吗?JSON知道这一点吗?如果是Windows-1252怎么办?json知道吗?酷。我想可能是这样的。这就是为什么我在试图“解决”它之前要求一些页面来测试它。但如果你确定,我肯定。JavaScript/EcmaScript完全支持Unicode,您也不能使用字节字符串。DOM也是如此,等等。