Python 从十六进制字符串表示法创建原始unicode字符/输入单个反斜杠

Python 从十六进制字符串表示法创建原始unicode字符/输入单个反斜杠,python,python-3.x,string,unicode,backslash,Python,Python 3.x,String,Unicode,Backslash,我想从字符串十六进制表示创建一个原始unicode字符。也就是说,我有一个字符串s='\u0222',它将是“Ȣ”字符 现在,如果我这样做了,这就行了 >>> s = '\u0222' >>> print(s) 'Ȣ' 但是,如果我尝试进行连接,结果是 >>> h = '0222' >>> s = r'\u' + '0222' >>> print(s) \u0222 >>> s '\\u

我想从字符串十六进制表示创建一个原始unicode字符。也就是说,我有一个字符串s='\u0222',它将是“Ȣ”字符

现在,如果我这样做了,这就行了

>>> s = '\u0222'
>>> print(s)
'Ȣ'
但是,如果我尝试进行连接,结果是

>>> h = '0222'
>>> s = r'\u' + '0222'
>>> print(s)
\u0222
>>> s
'\\u0222'

因为可以看到,字符串中实际包含的是“\\u”而不是“\u”。如何从十六进制字符串创建unicode字符,或者如何输入真正的单个反斜杠?

这比我最初预期的要难解决得多:

code = '0222'
uni_code = r'\u' + code
s = uni_code.encode().decode('unicode_escape')
print(s)


输入
\u0222
仅用于字符串常量,Python解释器为该语法生成一个Unicode代码点。它不是人工构建的。
chr()
函数用于生成Unicode代码点。以下内容适用于字符串或整数:

>>> chr(int('0222',16)) # convert string to int base 16
'Ȣ'
>>> chr(0x222)          # or just pass an integer.
'Ȣ'
FYI
ord()
是补充功能:

>>> hex(ord('Ȣ'))
'0x222'

同意,比看上去难多了。你在我测试的时候打败了我!对于OP,可以在中找到更多细节和示例,因为构建Unicode转义常量不是最直接的途径。请参阅
chr()
函数。更好的答案。我想是有什么原因造成的,但我不知道是什么原因。
>>> hex(ord('Ȣ'))
'0x222'