如何在Python3中将utf8代码转换为unicode代码

如何在Python3中将utf8代码转换为unicode代码,python,python-3.x,unicode,utf-8,Python,Python 3.x,Unicode,Utf 8,我想生成所有utf8字符列表。 我写了下面的代码,但效果不好。 我认为这是因为chr()需要unicode编码,但我给出了utf8编码。 我想我必须把utf8码转换成unicode码,但我不知道怎么做。 我该怎么办?还是你知道更好的方法 def utf8_2byte(): characters = [] # first byte range: [C2-DF] for first in range(0xC2, 0xDF + 1): # second byte

我想生成所有utf8字符列表。 我写了下面的代码,但效果不好。 我认为这是因为
chr()
需要unicode编码,但我给出了utf8编码。 我想我必须把utf8码转换成unicode码,但我不知道怎么做。 我该怎么办?还是你知道更好的方法

def utf8_2byte():
    characters = []
    # first byte range: [C2-DF]
    for first in range(0xC2, 0xDF + 1):
        # second byte range: [80-BF]
        for second in range(0x80, 0xBF + 1):
            num = (first << 8) + second
            line = [hex(num), chr(num)]
            characters.append(line)
    return characters
实际上:

[0xc380,쎀]
[0xc381,쎁]
[0xc382,쎂]

在Python3中,
chr
采用unicode码点,而不是
utf-8
<代码>U+C380在韩文范围内。相反,您可以使用
bytearray
进行解码

>>> bytearray((0xc3, 0x80)).decode('utf-8')
'À'

还有其他方法,如
struct
ctypes
。任何汇编本机字节并将其转换为
字节的操作都可以。

Unicode是一个字符集,而UTF-8是一种编码,它是一种在机器级别将代码点从Unicode编码为字节的算法,反之亦然

代码点
0xc380
采用Unicode标准

使用UTF-8编码解码时,字节
0xc380
À

>>> s = "쎀"
>>> hex(ord(s))
'0xc380'
>>> b = bytes.fromhex("C3 80")
>>> b
b'\xc3\x80'
>>> b.decode("utf8")
'À'
>>> bytes((0xc3, 0x80)).decode("utf8")
'À'

非常感谢。我明白了。Unicode
U+c380
是代码点<代码>1100001110000000
(0xc380)是使用unicode代码点的UTF-8编码样式解码的字节数组。你的代码运行得很好。非常感谢,非常感谢。我使用
bytes()
decode()
方法。
>>> s = "쎀"
>>> hex(ord(s))
'0xc380'
>>> b = bytes.fromhex("C3 80")
>>> b
b'\xc3\x80'
>>> b.decode("utf8")
'À'
>>> bytes((0xc3, 0x80)).decode("utf8")
'À'