Python 为什么文本编辑器将某些字符显示为unicode代码点?

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:

我正在用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上进行文本编辑。

json.dump的默认设置是假定ASCII输出,这意味着任何非ASCII Unicode字符都使用
\uxxx
符号表示。要更改此设置,请将
确保\u ascii
选项设置为
False
。使用
转储的一些示例:

>>> print json.dumps("foö")
"fo\u00f6"
>>> print json.dumps("foö", ensure_ascii=False)
"foö"