由emoji字符编码而来
2019-04-24 本文已影响0人
vlsee
- Unicode由21位表示,编码空间分为17个面板,每个面板都是256x256的矩阵,含有65536个码点。
- unicode为000000-00FFFF的码点转换为utf-8编码格式可由三个或三个以下的字节表示,它们全部属于第0面板。
- 而010000-10FFFF的码点在utf-8中需要四个字节来存储,这部分码点的Unicode用第0面板中的(utf-16)代理区域来表示,例如😀(d83d(前导)-de00(后尾)),当中0xD800-0xDBFF是前导代理(lead surrogates),0xDC00-0xDFFF是后尾代理(trail surrogates).通过公式来转换。这样的好处是通过查看字符第一个字节的数值,便可以判断该字符用多少的字节存储。例如可以利用正则[\ud800\udc00-\udbff\udfff]来过滤emoji字符。