gpt4 book ai didi

python - 将 Unicode 字符串转换为 UTF-8,然后再转换为 JSON

转载 作者:行者123 更新时间:2023-11-28 17:46:43 25 4
gpt4 key购买 nike

我想用 UTF-8 编码一个字符串并单独查看相应的 UTF-8 字节。在 Python REPL 中,以下内容似乎工作正常:

>>> unicode('©', 'utf-8').encode('utf-8')
'\xc2\xa9'

请注意,我使用的是 U+00A9 COPYRIGHT SIGN作为这里的例子。 '\xC2\xA9' 看起来很接近我想要的 — 一个由两个独立代码点组成的字符串:U+00C2 和 U+00A9。 (当 UTF-8 解码时,它返回原始字符串,'\xA9'。)

然后,我希望将 UTF-8 编码的字符串转换为 JSON 兼容的字符串。但是,以下内容似乎并没有满足我的要求:

>>> import json; json.dumps('\xc2\xa9')
'"\\u00a9"'

请注意,它会生成一个包含 U+00A9(原始符号)的字符串。相反,我需要 UTF-8 编码的字符串,它在有效的 JSON 中看起来像 "\u00C2\u00A9"

TL;DR 如何在 Python 中将 '©' 转换为 "\u00C2\u00A9"?我觉得我错过了一些明显的东西——没有内置的方法来做到这一点吗?

最佳答案

如果你真的想要 "\u00c2\u00a9" 作为输出,给 json 一个 Unicode 字符串作为输入。

>>> print json.dumps(u'\xc2\xa9')
"\u00c2\u00a9"

您可以从原始字节生成这个 Unicode 字符串:

s = unicode('©', 'utf-8').encode('utf-8')
s2 = u''.join(unichr(ord(c)) for c in s)

我认为您真正想要的是 "\xc2\xa9" 作为输出,但我不确定如何生成它。

关于python - 将 Unicode 字符串转换为 UTF-8,然后再转换为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17199653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com