HTTP協議編碼與解碼
在講解編碼之前我們率先了解一下甚麼是碼
字符集與編碼
計算機如何顯示文字
有些人應該已經知道計算機系統是利用二進制保存操作,那我們就要思考如何把這種二進制系統轉換成我們的畫面
示意圖
現在想像計算機是一個人,如果我們今天想要找水壺的英文,那我們是不是會打開字典開始尋找。對計算機來說字符集就是他看得懂的語言,而字庫表就是他查找水壺這個英文的字典
- 字符集: 某一個電腦看得懂的二進制代碼(地址的集合)
- 字庫表: 儲存所有二進制代碼的具體內容(那一本字典)
- 編碼方式: 算法,因為二進制樹又臭又長很難搞
具體流程
一個二進制樹經過一個編碼方式得到字符集對應的地址,在字庫表找到對應的字符,最後顯示給用戶
常見編碼規範
為何會亂碼
不管是在編碼或者解碼的過程中,假如我們解析的過程沒有找到一一對應的字符集或者字符表,就會產生亂碼。比方說ASCII不支持中文,如果我們在解碼過程發現中文字就會產生亂碼。
URL的編碼以及解碼
採用ASCII字符集進行編碼,假如有非ASCII的字符要對其進行編碼
URL 有一些保留字(比如&),如果要在URL使用也要進行編碼
百分號編碼規範
- 屬於ASCII字符集的非保留字不做編碼
- 屬於ASCII字符集的保留字取得ASCII的內碼,再加上%前綴後進行編碼
- 非ASCII則取Unicode內碼,加上%前綴後進行編碼