Python 为什么文本编辑器将某些字符显示为unicode代码点?
我正在用python抓取一个网站。网站文本位于Python 为什么文本编辑器将某些字符显示为unicode代码点?,python,unicode,Python,Unicode,我正在用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:
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上进行文本编辑。json.dump的默认设置是假定ASCII输出,这意味着任何非ASCII Unicode字符都使用
\uxxx
符号表示。要更改此设置,请将确保\u ascii
选项设置为False
。使用转储的一些示例:
>>> print json.dumps("foö")
"fo\u00f6"
>>> print json.dumps("foö", ensure_ascii=False)
"foö"