在查看数据库中的emoji數据时可能会看到某些表情显示为口 ,此时可以查看该数据的十六进制表示看是否正确。验证方法为将emoji表情的unicode转换成utf8编码然后比对,具体见下面“如何将unicode转成utf8”
- 首先说明两点:第一,字符是一个单位的字形、类字形单位或符号的基本信息如单个英文字毋、单个汉字及单个emoji表情等都是单个字符。一个字节指8个bit位 第二,utf8,utf16及utf32编码都是unicode的表现形式
-
说明:unicode编码的设计者将D800至DFFF保留下来,用于代悝(Surrogate)为什么要用代理呢?因为utf16无法用一个码位(2个字节)来表示所有的字符如果一个字符占3个或4个字节时,如何用utf16来表示呢这就需要用到代理了,utf16用2个D800至DBFF来表示占3至4个字节的字符如unicode为U+1F60A的字符,其utf16表示为D83D DE0C占了2个码位,代理只用在utf16中utf8及utf32均不用代理。更多内容见