發表文章

目前顯示的是 2月, 2017的文章

[Python] 淺談字元碼位 (Code Point) 及相關函式

字元碼位?就是每個字元的編碼位置,可以想成是每個字元的身分證,只要知道那個字元,就能知道它的碼位;反之亦然。 雖然目前有這麼多種編碼,而每種編碼中的碼位都不同,我們應該每種都學嗎?幸運的是 Python 3 把字串跟 Unicode 做了整合,所以我們接下來所談的部分會專注於 Unicode 這個編碼上。 ord() 與 chr() 在 Python 中,可以使用 ord() 函式取得某個字元的碼位: print(ord('1')) # 49 print(ord('N')) # 78 print(ord('你')) # 20320 然後我們可以把這個碼位丟進 chr() 函式獲取該碼位的字元: print(chr(49)) # '1' print(chr(78)) # 'N' print(chr(20320)) # '你' 請配著上面的範例食用(?) 轉義-使用碼位 可能有人會看過什麼 \???、\x??、\u???? 之類的東西,可是看都看不懂,這其實是使用了碼位來進行字串的轉義,我們來看看 Python 中 Unicode 字元的轉義: \ _ _ _:以8進位的碼位來表示字元,最多3位數 \x_ _:以16進位的碼位來表示字元,基本上2位數 \u_ _ _ _:以16位元的16進位數值代表碼位 \U_ _ _ _ _ _ _ _:同上,只是這是32位元的數值 print('\116') # 116(8) == 78(10) # N print('\x31') # 31(16) == 49(10) # 1 print('\u4F60') # 4F60(16) == 20320(10) # '你' print('\U00004F60') # '你'