当前位置: 首页 > 面试题库 >

为什么json.dumps用“ \ uxxxx”转义非ascii字符

堵泽宇
2023-03-14
问题内容

在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字符的安全方式。



 类似资料:
  • 问题内容: 我正在尝试解析包含某些非ASCII字符的xml, 代码如下 但它在行“ content = …”上显示了错误,例如 在终端中它正在工作,但是在Eclipse IDE上运行时却给我一个错误。 不知道该如何克服。 问题答案: 您应该定义源代码编码,并将其添加到脚本顶部: 它在控制台和IDE中工作不同的原因可能是由于设置了不同的默认编码。您可以通过运行以下命令进行检查:

  • 问题内容: 我想在链接末尾获得名称,所以我做到了 Eclipse表示String文字没有被双引号正确关闭 如何比较String和这个char ? 问题答案: 字符“ \”是一个特殊字符,用作字符串的一部分时需要转义,例如“ \”。这是使用’'字符进行字符串比较的示例: 您还可以使用类似于以下内容的逻辑执行直接字符比较:

  • 问题内容: 我需要将unicode字符串转换为具有以unicode编码的非ascii字符的字符串。例如,字符串“汉字Max”应显示为“ \ u6F22 \ u5B57 Max”。 我尝试过的 的不同组合 新的String(sourceString.getBytes(encoding1),encoding2) Apache StringEscapeUtils也会转义ascii字符,例如双引号 Str

  • 我想将char类型转换为int类型,而不丢失有符号的含义,所以我在文件int_test中编写代码。c和它的工作原理: 运行结果是: (有符号字符)a=-2,b=-2 编译日志是: gcc-o int _ test int _ test . c int _ test . c:在函数“main”中:int_test.c:9:15:警告:左移位计数 我的问题是:1.是否有简单有效的转换?2.简单地将ch

  • 问题内容: 例如,如果我有一个 unicode 字符串,则可以将其编码为 ASCII 字符串,如下所示: 但是,我有例如以下 ASCII 字符串: …我想将其转换为与上述第一个示例相同的 ASCII 字符串: 问题答案: 我花了一些时间才弄清楚这一点,但此页面的最佳答案是: 还有一个“ raw-unicode-escape”编解码器,用于处理另一种指定Unicode字符串的方法-有关更多详细信息,

  • 问题内容: 我需要将由某些特定于某些语言的字母(例如HÄSTDJUR-注意Ä)组成的s 转换为不带那些特殊字母(在这种情况下为HASTDJUR)的。如何用Java做到这一点?感谢帮助! 它不是真的如何听起来。该场景如下-您要使用该应用程序,但没有瑞典语键盘。因此,您无需查看字符映射表,而是通过将特殊字母替换为拉丁字母中的典型字母来键入它。 问题答案: 我认为您的问题与此问题相同: Java-消除重