Python 3:我如何获取变量中的值并将其转换为 unicode 字符?
Python 3: How can I take a value in a variable and convert that to a unicode character?
我正在尝试获取一个值并将其按名称或按值转换为 unicode 字符。我见过的每个示例都将值硬编码到字符串中(如 q = '\uc3a8'),但这对我来说并不是很有帮助。我正在将一些数字或文字名称输入到变量中。我只是想不通如何让它去。我已经尝试了编码、解码、评估、r 字符串、f 字符串的各种迭代,但我一无所获。我错过了什么?这是在 Python 3.10.
LATIN_SMALL_LETTER_E_WITH_GRAVE = 0xC3A8
j = LATIN_SMALL_LETTER_E_WITH_GRAVE
print (j, "\u%04x" % j)
然而,当我 运行 它时,我得到这个:
print (j, "\u%04x" % j)
^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-1: truncated \uXXXX escape
同样,如果我这样做:
char_name = "LATIN SMALL LETTER E WITH GRAVE"
z = "\N{" + char_name + "}"
我明白了:
z = "\N{" + char_name + "}"
^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-2: malformed \N character escape
这是我的尝试,可能对你有帮助。
如果取十六进制指示符'0x'后面的数字C3A8,就可以显示Unicode字符的信息,然后赋值给一个变量,方法如下:
import unicodedata
def unicode_test(value):
name = unicodedata.name(value)
value2 = unicodedata.lookup(name)
print('value="%s", name="%s", value2 = "%s"' % (value, name, value2))
return value
character_wanted = unicode_test('\uC3A8')
输出:
value="쎨", name="HANGUL SYLLABLE SSYEOL", value2 = "쎨"
当然,上面的评论建议您使用 chr 方法执行的操作也是完全正确的。我相信他们会给你相同的结果,这只取决于你打算使用的输入:
print(character_wanted, chr(0xC3A8))
输出:
쎨 쎨
Bill Lubanovic 着的 Introducing Python 一书中的代码片段,第 1 页148.
我正在尝试获取一个值并将其按名称或按值转换为 unicode 字符。我见过的每个示例都将值硬编码到字符串中(如 q = '\uc3a8'),但这对我来说并不是很有帮助。我正在将一些数字或文字名称输入到变量中。我只是想不通如何让它去。我已经尝试了编码、解码、评估、r 字符串、f 字符串的各种迭代,但我一无所获。我错过了什么?这是在 Python 3.10.
LATIN_SMALL_LETTER_E_WITH_GRAVE = 0xC3A8
j = LATIN_SMALL_LETTER_E_WITH_GRAVE
print (j, "\u%04x" % j)
然而,当我 运行 它时,我得到这个:
print (j, "\u%04x" % j)
^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-1: truncated \uXXXX escape
同样,如果我这样做:
char_name = "LATIN SMALL LETTER E WITH GRAVE"
z = "\N{" + char_name + "}"
我明白了:
z = "\N{" + char_name + "}"
^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-2: malformed \N character escape
这是我的尝试,可能对你有帮助。 如果取十六进制指示符'0x'后面的数字C3A8,就可以显示Unicode字符的信息,然后赋值给一个变量,方法如下:
import unicodedata
def unicode_test(value):
name = unicodedata.name(value)
value2 = unicodedata.lookup(name)
print('value="%s", name="%s", value2 = "%s"' % (value, name, value2))
return value
character_wanted = unicode_test('\uC3A8')
输出:
value="쎨", name="HANGUL SYLLABLE SSYEOL", value2 = "쎨"
当然,上面的评论建议您使用 chr 方法执行的操作也是完全正确的。我相信他们会给你相同的结果,这只取决于你打算使用的输入:
print(character_wanted, chr(0xC3A8))
输出:
쎨 쎨
Bill Lubanovic 着的 Introducing Python 一书中的代码片段,第 1 页148.