簡體   English   中英

如何將字符串轉換為字節數組?

[英]How to convert string to byte arrays?

如何將字符串轉換為其字節值? 我有一個字符串"hello" ,我想改變的是像"/x68..."

Python 2.6及更高版本有一個bytearray類型,可能是你正在尋找的。 與字符串不同,它是可變的,即,您可以“就地”更改單個字節,而不必創建一個全新的字符串。 它具有列表和字符串功能的完美組合。 它也使你的意圖清晰,你正在使用任意字節而不是文本。

也許你想要這個(Python 2):

>>> map(ord,'hello')
[104, 101, 108, 108, 111]

對於Unicode字符串,這將返回Unicode代碼點:

>>> map(ord,u'Hello, 馬克')
[72, 101, 108, 108, 111, 44, 32, 39532, 20811]

但編碼它以獲取編碼的字節值:

>>> map(ord,u'Hello, 馬克'.encode('chinese'))
[72, 101, 108, 108, 111, 44, 32, 194, 237, 191, 203]
>>> map(ord,u'Hello, 馬克'.encode('utf8'))
[72, 101, 108, 108, 111, 44, 32, 233, 169, 172, 229, 133, 139]

如果你想獲得十六進制字符串表示,你可以這樣做:

"hello".encode("hex") # '68656c6c6f'

並且為了滿足你的參考表示(不要認真對待,猜猜這不是你真正想要的 ):

"".join(["/x%02x" % ord(c) for c in "hello"]) # '/x68/x65/x6c/x6c/x6f'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM