由emoji字符編碼而來

  • Unicode由21位表示,編碼空間分為17個面板,每個面板都是256x256的矩陣,含有65536個碼點。
  • unicode為000000-00FFFF的碼點轉(zhuǎn)換為utf-8編碼格式可由三個或三個以下的字節(jié)表示,它們?nèi)繉儆诘?面板。
  • 而010000-10FFFF的碼點在utf-8中需要四個字節(jié)來存儲,這部分碼點的Unicode用第0面板中的(utf-16)代理區(qū)域來表示,例如??(d83d(前導(dǎo))-de00(后尾)),當(dāng)中0xD800-0xDBFF是前導(dǎo)代理(lead surrogates),0xDC00-0xDFFF是后尾代理(trail surrogates).通過公式0x10000 + (前導(dǎo)-0xD800) * 0x400 + (后導(dǎo)-0xDC00) = utf-16編碼來轉(zhuǎn)換。這樣的好處是通過查看字符第一個字節(jié)的數(shù)值,便可以判斷該字符用多少的字節(jié)存儲。例如可以利用正則[\ud800\udc00-\udbff\udfff]來過濾emoji字符。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容