为什么json.dumps用“ \ uxxxx”转义非ascii字符
在Python 2中,该函数json.dumps()
将确保所有非ascii字符均以逸出\uxxxx
。
Python 2杰森
但这不是很令人困惑,因为它\uxxxx
是一个Unicode字符,应该在Unicode字符串中使用。
输出的json.dumps()
是a str
,这是Python 2中的字节字符串。因此,它不应该将字符转义为\xhh
吗?
>>> unicode_string = u"\u00f8">>> print unicode_string
ø
>>> print json.dumps(unicode_string)
"\u00f8"
>>> unicode_string.encode("utf8")
'\xc3\xb8'
回答:
这就是重点。您会得到一个字节字符串,而不是Unicode字符串。因此,Unicode字符需要转义才能生存。JSON允许转义,因此提供了一种表示Unicode字符的安全方式。
以上是 为什么json.dumps用“ \ uxxxx”转义非ascii字符 的全部内容, 来源链接: utcz.com/qa/417873.html