Python 解码和编码
Python decode and encode
我不知道如何通过特定代码页提供要解码(或编码?)的十进制代码点列表。
str_0 = 'abc'
lst_decimal = list(str_0.encode("utf-8"))
for i in lst_decimal:
print (str(int(i)).decode("cp437"))
错误:'str'对象没有属性'decode'
str_0.encode("utf-8")
returns一个bytes
对象,它有一个decode
方法,但是当你把它变成一个列表时,它就变成了一个int类型的列表。只需将其保留为字节对象:
my_bytes = str_0.encode("utf-8")
print (my_bytes.decode("cp437")) #prints abc
更简单:
print(str_0.encode("utf-8").decode("cp437"))
作为一个额外的好处,不需要在循环中使用 decode
-- 整个 bytes
对象可以一次解码。
如果您想保留原来的 lst_decimal
并做您想做的事情,您的循环可能如下所示:
for i in lst_decimal:
print(bytes([i]).decode("cp437"))
list()
把一个 bytes
对象变成一个整数列表,然后 bytes
倒退。但是请注意,只是 bytes(i)
returns 一个 i
字节的列表,每个字节都初始化为 0
.
我不知道如何通过特定代码页提供要解码(或编码?)的十进制代码点列表。
str_0 = 'abc'
lst_decimal = list(str_0.encode("utf-8"))
for i in lst_decimal:
print (str(int(i)).decode("cp437"))
错误:'str'对象没有属性'decode'
str_0.encode("utf-8")
returns一个bytes
对象,它有一个decode
方法,但是当你把它变成一个列表时,它就变成了一个int类型的列表。只需将其保留为字节对象:
my_bytes = str_0.encode("utf-8")
print (my_bytes.decode("cp437")) #prints abc
更简单:
print(str_0.encode("utf-8").decode("cp437"))
作为一个额外的好处,不需要在循环中使用 decode
-- 整个 bytes
对象可以一次解码。
如果您想保留原来的 lst_decimal
并做您想做的事情,您的循环可能如下所示:
for i in lst_decimal:
print(bytes([i]).decode("cp437"))
list()
把一个 bytes
对象变成一个整数列表,然后 bytes
倒退。但是请注意,只是 bytes(i)
returns 一个 i
字节的列表,每个字节都初始化为 0
.