我读过如果它不是utf-8,它可能是ISO-8859-1,所以我现在正在做的是:
for possible_enCoding in ["utf-8","ISO-8859-1"]: try: # post_dict contains,among other things,website HTML retrIEved # with urllib2 Json = simpleJson.dumps(post_dict,enCoding=possible_enCoding) break except UnicodeDecodeError: passif Json is None: raise UnicodeDecodeError
如果我遇到任何其他编码,这当然会失败,所以我想知道在一般情况下是否有办法解决这个问题.
我之所以尝试序列化HTML的原因是因为我需要在POST请求中将它发送到我们的NodeJs服务器.所以,如果有人有一个不同的解决方案允许我这样做(可能根本没有序列化到JsON),我也很高兴听到这个.
解决方法 无论用于发送POST请求的媒体类型如何,您都应该知道字符编码(除非您想发送二进制blob).要获取HTML内容的字符编码,请参阅A good way to get the charset/encoding of an HTTP response in Python
.
要将post_dict作为Json发送,请确保其中的所有字符串都是Unicode(只要您收到它就将HTML转换为Unicode)并且不要将编码参数用于Json.dumps()调用.如果不同的网站(您获取HTML字符串的地方)使用不同的编码,该参数将无法帮助您.
总结以上是内存溢出为你收集整理的python – 从未知字符编码的字符串转储JSON全部内容,希望文章能够帮你解决python – 从未知字符编码的字符串转储JSON所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)