1. 程式人生 > 其它 >學習筆記8(必做)

學習筆記8(必做)

字元編碼

一、什麼是字元編碼

計算機內部只能識別二進位制,但是使用者在使用計算機的時候卻可以看到各式各樣的語言字元
字元編碼:內部記錄人類字元和數字對應關係的資料
只跟文字檔案和字串有關,與視訊檔案,圖片檔案等無關

二、字元編碼發展史

1.一家獨大

計算機最初由美國人發明,美國人為了能夠讓計算機識別英文字元,做了ASCII碼
ASCII碼:裡面記錄了英文字元與數字的對應關係
ps:所有英文字元和符號加起來其實不超過127,之所以使用八位是為了後續發現新的語言
必須記住的對應關係:
0: 48 A-Z: 65-90 a-z:97-122

2.群雄割據

中國人>>>為了能讓計算機識別中文,需要發明另外一套編碼表
GBK碼:

記錄中文英文與數字的對應關係 對於英文還是使用一個位元組,對應中文使用兩個位元組甚至更多位元組。
兩個位元組也不夠表示出所有的中文,遇到生僻字可能需要更多位來表示

日本人>>>為了能讓計算機識別日文,也需要發明一套編碼表
shift_JIS碼:記錄日文英文與數字的對應關係

韓國人>>>為了能夠讓計算機識別韓文,也需要發明一套編碼表
Eur_kr碼:記錄了英文韓文與數字的對應關係

3.天下一統

為了能夠實現不同國家之間的文字資料能夠彼此無障礙交流需要對編碼統一
unicode(萬國碼):統一使用兩個及以上字元記錄字元與數字的對應關係
utf8(萬國碼的優化版本):

將英文還是一個位元組儲存 將中文使用三個位元組或者更多位元組儲存
現在預設使用的編碼是utf8

三、字元編碼實操

1.如何解決檔案亂碼的情況

檔案當初以什麼編碼編的,開啟的時候就用是什麼編碼解

2.python直譯器版本不同帶來的編碼差異

python2.X內部使用的是ASCII 轉換
檔案頭:coding:utf8
在python2中定義字串前面要加一個小u:
s = u'你們' python3.X內部使用utf8

pycharm自定義檔案模板內容:
file-settings-editor-file and code templates-python script

3.編碼與解碼

編碼:

將人類能夠讀懂的語言按照指定的編碼轉換成數字
解碼:將數字按照指定的編碼轉換成人類能夠讀懂的字元

s = '努力學習程式設計'