将十六进制字符字符串转换为 Unicode 字符串(python)

哈桑·拜格

我有一串 unicode 序号(以十六进制形式),如下所示:

\u063a\u064a\u0646\u064a\u0627

它是阿拉伯字符串的 unicode 表示غينيا(从阿拉伯语 lorem ipsum 生成器中获得)。

我想将 unicode 十六进制字符串转换为غينيا. 我尝试过print u'%s' % "\u063a\u064a\u0646\u064a\u0627"(在此处指出),但这只是返回十六进制格式,而不是符号。print word.replace("\u","\\u")也不做这项工作。该怎么办?

艾萨克·范东根

我不完全确定你想要什么,所以我会涵盖我能看到的两种情况。

情况 1:您只想使用 unicode 文字语法从代码中输出阿拉伯字符串。在这种情况下,你应该在你的字符串文字前加上 au ,你会像下雨一样:

s = u"\u063a\u064a\u0646\u064a\u0627"
print(s)

这可能与

print u'%s' % s

除了更短。在这种情况下,将一个空字符串格式化为已形成的字符串没有任何意义,因为它没有改变任何东西 - 换句话说,u'%s' % s == s.

情况 2:您有一个来自其他来源的转义字符串,您想将其计算为 Unicode 字符串。这就是你试图用print u'%s' %. 这可以用

import ast
s = r"\u063a\u064a\u0646\u064a\u0627"
print ast.literal_eval("u'{}'".format(s))

请注意,与evalthis不同的是安全的,因为literal_eval不允许任何类似函数调用的操作。另请参阅此处的 s 是一个以 r 为前缀的字符串,因此反斜杠不会转义任何内容,而是字面上的反斜杠字符。

两段代码正确输出

غينيا

print u'%s' % s对案例 1 的一些详细说明。这表现不同,因为如果字符串已经被转义,它不会像格式化中的 Unicode 文字一样被评估。这是因为 Python 仅在第一次计算时才从 unicode 类似文字的表达式(例如 s)中实际构建 Unicode。如果它已被转义,则使用普通字符串操作是无法实现的,因此您必须再次使用literal_eval来评估它以正确打印字符串。当你跑

print u'%s' % s

输出是

\u063a\u064a\u0646\u064a\u0627

请注意,这不是 Unicode 对象的表示,而是字面上带有一些反斜杠和字符的 ascii 字符串。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Javascript:将Unicode字符串转换为十六进制

来自分类Dev

如何在Python 2.7中将字符串中具有十六进制字符的字符串转换为完整的unicode

来自分类Dev

Python Unicode十六进制字符串解码

来自分类Dev

Python将特殊的unicode字符(例如♡)转换为字符串中的十六进制文字(例如0x2661)

来自分类Dev

Python:将十六进制转换为字符串

来自分类Dev

查找Unicode字符串的十六进制代码

来自分类Dev

将字符串转换为十六进制字符

来自分类Dev

将字符串转换为十六进制字符

来自分类Dev

在Ruby on Rails中将字符串转换为两个字节的十六进制unicode

来自分类Dev

将十六进制字符串转换为整数

来自分类Dev

将十六进制字符串转换为字节[]

来自分类Dev

将十六进制字符串转换为整数

来自分类Dev

将十六进制转换为字符串

来自分类Dev

将十六进制字符串转换为字节[]

来自分类Dev

将十六进制数字转换为字符串

来自分类Dev

将字符串变量转换为十六进制

来自分类Dev

将十六进制字符串转换为图像

来自分类Dev

将int转换为十六进制字符串

来自分类Dev

将十六进制字符串转换为 ascii

来自分类Dev

将十六进制转换为字符串

来自分类Dev

将字符串转换为unicode

来自分类Dev

Python3-将Unicode文字字符串转换为Unicode字符串

来自分类Dev

将十六进制字符串转换为二进制字符串

来自分类Dev

在python中将字符串转换为十六进制

来自分类Dev

在python中将字符串转换为十六进制

来自分类Dev

Python十六进制转换为字符串?

来自分类Dev

Python:字符串转换为十六进制文字

来自分类Dev

如何将十六进制字符串转换为十六进制数字

来自分类Dev

Java:将十六进制编码的字符串转换为十六进制字节

Related 相关文章

热门标签

归档