簡體   English   中英

如何使用編碼的字符串類型字符串初始化字節

[英]How to initialize bytes with an encoded, string type string

我們在python中創建字節變量的常用方法是使用以下方式:

b = b'some text i do not care'

例如,漢字“魯邦三世”編碼為字節類型為:

str_ch = "魯邦三世"
encoded_str_ch = str_ch.encode("utf-8")
print(encoded_str_ch) # b'\xe9\xb2\x81\xe9\x82\xa6\xe4\xb8\x89\xe4\xb8\x96'

現在,如果我有一個字符串:

s = '\xe9\xb2\x81\xe9\x82\xa6\xe4\xb8\x89\xe4\xb8\x96' 
# same with encoded_str_ch, but it's string type

我如何初始化字節變量只使用變量 s,而不是編碼字符串 '\\xe9...\\x96'

我試過

bytes(str_ch, encoding = "utf8")

但它不正確,仍然得到與 s 相同的結果

或者沒有辦法做到這一點......

所以你有一個 Unicode 字符串,但代碼點真的是 UTF-8 字節? 這通常意味着字符串是用錯誤的編解碼器解碼的。 以下將代碼點轉換回字節,因為latin1是前 256 個代碼點並將 1:1 映射回字節:

b = s.encode('latin1')

暫無
暫無

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

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