我正在用python爬行一个网站。该网站的文本为iso-8859-1
格式。读取HTML后,我将文本转换为utf-8格式:
pageHTML = urllib.urlopen( url ).read()
pageHTML = pageHTML.decode('iso-8859-1').encode('utf8')
我对HTML做了一些处理,并将一些标记存储在一个数组中。然后,我将数组作为json转储到一个文件中:
with open(outputPath, 'w') as f:
json.dump(tokens, f)
但是,当我使用文本编辑器打开转储的文件时,我看不到真正的字符,但我看到的unicode代码点如下:
"hei\u00dfen"
它应该显示为“heiüen”。
我的问题:
1-为什么?
2-如何解决?
文本编辑器是Atom。但也在OS X上尝试过TextEdit。
发布于 2016-03-09 04:01:34
json.dump
的默认设置是假定ASCII输出,这意味着任何非ASCII Unicode字符都使用\uxxxx
表示法表示。要更改此设置,请将ensure_ascii
选项设置为False
。使用dumps
的一些示例
>>> print json.dumps("foö")
"fo\u00f6"
>>> print json.dumps("foö", ensure_ascii=False)
"foö"
https://stackoverflow.com/questions/35876759
复制相似问题