6.1.編碼/解碼器的基本概念
1.Introduction
編碼(encode) /解碼(decode)
編碼就是將字符轉為位元組的過程與演算法
解碼就是將位元組轉為字符的過程與演算法
字符集 (字碼)
各種文字及符號的總稱, 例如常見的有:
ASCII
GBK
Unicode
以Unicode編碼為例, 其字碼為4~6個16進位數字, 並在前面加上U+
英文字母A的Unicode字碼: U+0041
歐元符號: U+20AC
字符編碼
將字符集轉為二進位
例如ASCII字符編碼可將ASCII字符集中的128個字符轉為二進制
代表字元的位元組會根據使用的編碼而定, 例如Unicode只定義了字符集以及每個字符對應到的唯一編碼值(code point), 編碼演算法則有UTF-8, UTF-16, UTF-32
編碼是一種演算法, 可互相轉換字碼
以A的位元組為例
UTF-8編碼: \x41
UTF-16LE編碼: \x41\x00
2.Python的操作
Python中的字串類型有兩種: str跟bytes, 也就是對應到前一個部分所說的字符轉為位元組(16進位),
python編輯界面和運行界面, 通常都是默認str為unicode編碼
unicode str的表示方式有兩種: u'字符串'或者'\u四位16進位數'. 它們是等價的, 而且都是str對象
當bytes中的字節符合ASCII碼的可顯示字符時, 這個字節就會按照ASCII碼來顯示, 否則就會以16進位顯示
若要宣告的字串為bytes形式, 可以在字串前加上b
str可以通過encode轉化为bytes, bytes可以通過decode轉化为str
Last updated