📜  Python中的字节对象与字符串

📅  最后修改于: 2022-05-13 01:55:30.614000             🧑  作者: Mango

Python中的字节对象与字符串

在Python 2 中,str 和 bytes 都是相同的 typeByte 对象,而在Python 3 中,Byte 对象在Python 3 中定义为“字节序列”,类似于Python 2 中的“ unicode ”对象。但是,字符串和字节对象。其中一些描述如下:
`

  • 字节对象是字节序列,而字符串是字符序列。
  • 字节对象在内部是机器可读的形式,字符串只是人类可读的形式。
  • 由于 Byte 对象是机器可读的,因此它们可以直接存储在磁盘上。然而,字符串需要编码才能存储在磁盘上。

python中的字符串与字节

有一些方法可以将字节对象转换为字符串和将字符串转换为字节对象。

编码

PNG、JPEG、MP3、WAV、ASCII、UTF-8 等是不同形式的编码。编码是一种以字节表示音频、图像、文本等的格式。将字符串转换为字节对象称为编码。这是必要的,以便可以使用使用ASCIIUTF-8编码技术的映射将文本存储在磁盘上。
这个任务是使用encode()来完成的。它以编码技术为参数。默认技术是“ UTF-8 ”技术。

Python3
# Python code to demonstrate String encoding
 
# initialising a String
a = 'GeeksforGeeks'
 
# initialising a byte object
c = b'GeeksforGeeks'
 
# using encode() to encode the String
# encoded version of a is stored in d
# using ASCII mapping
d = a.encode('ASCII')
 
# checking if a is converted to bytes or not
if (d==c):
    print ("Encoding successful")
else : print ("Encoding Unsuccessful")


Python3
# Python code to demonstrate Byte Decoding
 
# initialising a String
a = 'GeeksforGeeks'
 
# initialising a byte object
c = b'GeeksforGeeks'
 
# using decode() to decode the Byte object
# decoded version of c is stored in d
# using ASCII mapping
d = c.decode('ASCII')
 
# checking if c is converted to String or not
if (d==a):
    print ("Decoding successful")
else : print ("Decoding Unsuccessful")


输出:

Encoding successful

解码

同样,解码是将Byte 对象转换为 String的过程。它是使用decode()实现的。如果您知道使用哪种编码对其进行字符串,则可以将字节字符串解码回字符。编码和解码是过程。

Python3

# Python code to demonstrate Byte Decoding
 
# initialising a String
a = 'GeeksforGeeks'
 
# initialising a byte object
c = b'GeeksforGeeks'
 
# using decode() to decode the Byte object
# decoded version of c is stored in d
# using ASCII mapping
d = c.decode('ASCII')
 
# checking if c is converted to String or not
if (d==a):
    print ("Decoding successful")
else : print ("Decoding Unsuccessful")

输出:

Decoding successful