字元編碼發展
ASCII 255 只支援英文字母與數字,特殊字元 1bytes
Unicode 中文與英文 統一 2bytes##n##1-85 >1bytes
bytes類型
文字資料總是unicode由str類型表示,二進位資料則由bytes類型表示
二進位資料用在視訊,音訊檔案以及傳送socket網路傳輸資料等
字串轉為二進位 str.encode("encoding=utf-8")
二進位轉成字串 b'\xe2\x82'.decode(" encoding=utf-8")
檔案句柄就是檔案物件的記憶體位址
字元編碼與轉碼
ASCII碼表中無法存中文,windows預設的系統字元編碼是GBK.
Unicode 字元編碼能儲存世界上所有的字元,但所有字元都佔用了兩個位元組,原來一個2M
的英文檔案使用Unicode後需要佔用4M的儲存空間
utf-8字串轉換成gbk字元
任何兩個編碼的字串進行轉換都必須透過先轉換成Unicode編碼來實作
Unicode(統一碼、萬國碼、單碼)是電腦上使用的字元編碼。 Unicode 是為了解決傳統的字元編碼方案的局限而產生的,它為每種語言中的每個字元設定了統一並且唯一的二進位編碼.
亂碼的出現基本上就兩種情況:
1、字元編碼沒有
2、字元編碼衝突了,人家在寫這個程式的時候指定的字元集和咱們使用的字元集的位置不對
在2.x版本的Python中Pyton在解釋.py檔的時候,預設是給他一個編碼的就是ASCII碼
Python3中預設就是Unicode編碼
因為在python2. X中預設是ASCII編碼,你在檔案中指定編碼為UTF-8,但是UTF-8如果你想轉GBK的話是不能直接轉的,的需要Unicode做一個轉接站點。
str ="你好" //這個字串採用utf-8編碼
new_str=str.decode('utf-8') / /把str原來的編碼格式傳遞到decode函數轉碼成Unicode編碼
ret = new_str.encode('GBK') //把unicode編碼轉換成GBK編碼字串
#str = u"你好" 在字串前面加個u字母表示此字串設定成Unicode編碼
編碼
python解釋器在載入.py 檔案中的程式碼時,會對內容進行編碼(預設ascill)所以如果不指定編碼類型,
如果有中文就會報錯。
Python的工作流程
python 把程式碼讀到記憶體 2、詞法文法分析3、放到編譯器 ---》 產生字節碼 4、執行字節碼--- 》產生機器碼 CPU執行
變數
字串的值是不能被修改的,他在記憶體裡是連續的,如果想改的話必須在後面預留所以不支援修改!
字串特性,一旦修改,重新建立以上是python字符編碼檔案方法介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!