我的問題是關於python 3.0字符串。python字符串和二進制數據
我的理解是,對於線
str = "a"
,所述字符內「A」進行編碼(使用UTF-8 - 例如),並存儲在STR對象。如果'a'的UTF-8表示是1個字節,則該字符串的長度爲1個字節。我對嗎?如果以上情況屬實,當我們使用read()讀取二進制文件時會發生什麼情況。假設我有一個二進制數據的兩個字節兩個字節的文件,我在使用字符串讀它讀命令一樣
open(fileName, mode='rb') str= file.read()
現在
str
將是兩個字節長,每個字節會是怎樣被存儲在文件名。我對嗎?如果我在上述方面是正確的,那麼str對象不是以任何特定的編碼格式(如UTF等),那麼這意味着python字符串總是unicode?另外如果我調用str.encode()會發生什麼。這將沒有意義?
由於從文件讀取的
str
對象實際上是一個字節數組。有什麼辦法將其轉換爲bytearray類型?
您確實需要閱讀[Python Unicode HOWTO](http://docs.python.org/3/howto/unicode.html)和[本文](http://joelonsoftware.com/文章/ Unicode.html)爲好措施。 –
你真的不想給你的字符串命名'str'。特別是因爲你在問'str'和'bytes'對象,這使得它更容易混淆而不僅僅是隱藏內置對象。 – geoffspear