【问题标题】:python3 how to turn unicode codepoint into unicode charpython3如何将unicode代码点转换为unicode char
【发布时间】:2019-05-14 10:41:53
【问题描述】:

我知道这种类型的问题很多,但没有答案能够专门帮助我解决问题。

我有一个只有 Unicode 代码点的列表,所以采用这种形式: 304E 304F ...

没有 U+XXXX 没有 '\XXXX' 版本。

现在我尝试使用字符串操作来重新创建这样的字符串 所以我可以简单地打印相应的unichar。 我尝试了什么:

x = u'\\u' + listString
x = '\\u' + listString
x = '\u' + listString

打印的前 2 个只给我一个 '\uXXXX' 字符串,但不知道 如何让它打印字符而不是那个字符串。

最后一个给了我这个错误: (unicode 错误)“unicodeescape”编解码器无法解码位置 0-1 中的字节:截断 \uXXXX 转义

可能只是我不了解 unicode 和 stringmanipulation 但我希望有人可以帮助我。

提前谢谢o/

【问题讨论】:

  • @Joe 链接的答案确实解决了 OP 的问题。但是,这可能并不明显,因为链接的问题处理格式为 'oxNN' 的输入,而这里的输入是 'NNNN'
  • @Nazzaroth,Mark Reed 在链接线程中的回答可能会帮助您理解为什么您的尝试没有奏效。
  • @lenz 谢谢,是的,就像下面的 Weeble 一样,它确实解决了我的问题。

标签: python python-3.x string unicode


【解决方案1】:

您可以使用chr 获取 unicode 代码点的字符:

>>> chr(0x304E)
'ぎ'

您可以使用int 将十六进制字符串转换为整数:

>>> int('304E', 16)
12366
>>> chr(int('304E', 16))
'ぎ'

【讨论】:

  • 是的,这可以解决问题。当您知道答案时,这似乎很容易 XD
猜你喜欢
  • 2021-12-26
  • 1970-01-01
  • 2012-06-17
  • 1970-01-01
  • 1970-01-01
  • 2021-06-15
  • 2013-08-03
  • 1970-01-01
  • 2013-04-29
相关资源
最近更新 更多