Python 處理 Unicode
目前 Python 還不能直接處理 Extension-b 以上的5碼 Unicode.
如果讀入的檔案中含有 5碼 Unicode, surrogate paris 會被當做2個 Unicode 字元.
需要自行做一些處理.
下面這個程式片段可以取代 ord() 用來傳回 unicode(包含4碼或5碼) 的 code point:
def codePoint(s):
if len(s)==1: return ord(s)
high=ord(s[0])
if high<0xd800 or high>0xdbff: return high
high=high & 0x3ff
high+=0x40
high = high << 10
low=ord(s[1])
low=low& 0x3ff
return high + low
2011.3.30