Python中的幽靈 編碼方式

2022-08-26 08:21:06 字數 1499 閱讀 2849

首先要搞懂本地作業系統編碼與系統編碼的區別:

本地作業系統編碼方式與作業系統有關,linux預設編碼方式為utf-8,windows預設編碼方式為gbk;

系統編碼方式與編譯器or直譯器有關,python3直譯器預設編碼方式為unicode。

編碼方式不僅僅代表編碼,也包括解碼,因為編碼與解碼是相對應的。

好了,進入正題:

字串的encode方法會預設編碼為utf8格式,gbk編碼方式相容gb2312

兩個檔案都出現了這樣的問題

其中乙個我們點選reload in 「gbk」進行了過載,內容正常顯示了

另乙個我們點選下面的gbk編碼方式看看

什麼意思呢,我來解釋一下

reload:從硬碟中以新的編碼方式讀取內容並顯示在編輯器上,檔案在硬碟上的編碼方式不改變

convet:將現在編輯器上的內容以新的編碼方式寫入硬碟,覆蓋掉原先的內容,編碼方式改變。

第乙個檔案已經選擇了reload,這個檔案我們選擇convert

所以,這個檔案會將python�е����顪���뷽ʽ這些內容以gbk編碼方式存入硬碟,結果是這樣

接下來我們驗證以下我們的想法

補充:網路上的資料以位元組流的方式傳輸,所以

要用utf-8解碼才可以得到正確的字串內容

當然如果想存入檔案的話就需要注意啦

從檔案中讀取的時候可要小心啊,要以檔案相應的編碼方式讀出,比如open函式指定encoding,或者以二進位制方式讀出,之後在呼叫str.decode()方法以指定encoding解碼。

python中的編碼方式

這裡我們以python2.7為例講解python的編碼方式 python2.7的預設編碼方式為ascii字符集,這裡所說的編碼方式指執行編碼方式,在程式設計過程中,有三個地方都涉及到編碼方式 分別是原始碼編碼方式 py檔案的字符集 執行編碼方式,執行環境編碼方式,這裡不詳細贅述 詳見 所以在原始檔的...

python編碼方式

檢視編碼方式 import chardet print chardet.detect str str為string 位元組序 若寫入時以mode a encoding utf 16 方式執行,則會在內容寫入前新增標誌 xff xfe 若以 mode wb encoding utf 16 方式執行,則...

python 編碼方式總結

python 編碼方式總結 python 內部使用 unicode 編碼 t 北京 t xe5 x8c x97 xe4 xba xac 1 urllib.quote t 將t轉換為 16進製制編碼 e5 8c 97 e4 ba ac urllib.unquote e5 8c 97 e4 ba ac ...