這節理論比較多,要好好理解,如果理解不了,一定要把結論記下來
(所以基本沒寫別的內容)
ascii表:
1、只支援英文本串
2、採用8位二進位制數對應乙個英文本串
gbk表:
1、支援英文本元、中文字元
2、採用8位(8bit=1bytes)二進位制數對應乙個英文本串
採用16位(16bit=2bytes)二進位制數對應乙個中文字串
unicode(記憶體中統一使用unicode):
1、相容萬國字元
與萬國字元都有對應關係
2、採用16位(16bit=2bytes)二進位制數對應乙個中文字串
個別生僻會採用4bytes、8bytes
unicode表:
記憶體人類的字元---------unicode格式的數字----------
| |
| |
|硬碟 |
|| |
| |
gbk格式的二進位制 shift-jis格式的二進位制
老的字元編碼都可以轉換成unicode,但是不能通過unicode互轉
utf-8:
英文->1bytes
漢字->3bytes
結論:1、記憶體固定使用unicode,我們可以改變的是存入硬碟採用格式
英文+漢字-》unicode-》gbk
英文+日文-》unicode-》shift-jis
萬國字元》-unicode-》utf-8
3、python直譯器預設讀檔案的編碼
python3預設:utf-8
python2預設:ascii
指定檔案頭修改預設的編碼:
在py檔案的首行寫:
#coding:gbk
4、保證執行python程式前兩個階段不亂碼的核心法則:
指定檔案頭
# coding:檔案當初存入硬碟時所採用的編碼格式
5、python3的str型別預設直接存成unicode格式,無論如何都不會亂碼
保證python2的str型別不亂碼
x=u'上'
6、了解
python2直譯器有兩種字串型別:str、unicode
# str型別
x='上' # 字串值會按照檔案頭指定的編碼格式存入變數值的記憶體空間
# unicode型別
x=u'上' # 強制存成unicode
Day10 集合 字元編碼
集合 list tuple dict一樣都可以存放多個值,但是集合主要用於 去重 關係運算 去重 1.只能針對不可變型別去重 2.無法保證原來的順序 定義 在 內用逗號分隔開多個元素,集合具備以下三個特點 1 每個元素必須是不可變型別 2 集合內沒有重複的元素 3 集合內元素無序 型別轉換 但凡能被...
Day08字元編碼
day08 知識儲備 硬碟 由硬碟載入到記憶體,cpu從記憶體中取 軟體產生的資料都是先儲存在記憶體中 檔案,輸入文字,儲存到記憶體,記憶體是硬體,硬體只能儲存2進製,所以需要轉換 文字編輯器,輸入文字的時候,是乙個轉成二進位制儲存到記憶體,然後反解成文字顯示到螢幕的過程 字元編碼 將字元轉換 編碼...
day08字元編碼問題
1.把字元讀入python直譯器 python直譯器相當於文字編輯器 字元編碼 2.識別字元 3.往終端列印結果 字元編碼 第一步解決方法 python2預設使用ascill碼讀入字元 python3預設使用utf8 可以使用coding gbk 修改為 gbk讀入字元 第二步解決方法 python...