首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么文本编辑器将一些字符显示为unicode代码点?

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

Stack Overflow用户
提问于 2016-03-09 03:51:44
回答 1查看 49关注 0票数 2

我正在用python爬行一个网站。该网站的文本为iso-8859-1格式。读取HTML后,我将文本转换为utf-8格式:

代码语言:javascript
运行
复制
pageHTML = urllib.urlopen( url ).read()
pageHTML = pageHTML.decode('iso-8859-1').encode('utf8')

我对HTML做了一些处理,并将一些标记存储在一个数组中。然后,我将数组作为json转储到一个文件中:

代码语言:javascript
运行
复制
with open(outputPath, 'w') as f:
    json.dump(tokens, f)

但是,当我使用文本编辑器打开转储的文件时,我看不到真正的字符,但我看到的unicode代码点如下:

代码语言:javascript
运行
复制
"hei\u00dfen"

它应该显示为“heiüen”。

我的问题:

1-为什么?

2-如何解决?

文本编辑器是Atom。但也在OS X上尝试过TextEdit。

EN

回答 1

Stack Overflow用户

发布于 2016-03-09 04:01:34

json.dump的默认设置是假定ASCII输出,这意味着任何非ASCII Unicode字符都使用\uxxxx表示法表示。要更改此设置,请将ensure_ascii选项设置为False。使用dumps的一些示例

代码语言:javascript
运行
复制
>>> print json.dumps("foö")
"fo\u00f6"
>>> print json.dumps("foö", ensure_ascii=False)
"foö"
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35876759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档