错误截图:
参考了以下文章
http://crocodillon.com/blog/parsing-emoji-unicode-in-javascript
http://www.07net01.com/2015/08/896224.html
http://blog.sina.com.cn/s/blog_4d25c9870100epc1.html
Javascript定义的String编码是UTF-16,两个字节一个字符。
Unicode范围U+0000至U+FFFF的字符是没问题的,超过此范围的需要两个编码单元表示。
表情符号的Unicode值超过U+FFFF,通过正则表达过滤出表情符号,根据两个编码单元的UTF-16值,计算出表情符号的html实体字符(&#编号;),即可正常显示。
文章中也有通过Unicode转UTF-16,来获取表情符号值范围的计算。
U值 < 0x10000,U的编码就是无符号的十六位整数,值和其本身的值一样,即Unicode与UTF-16的值是一样的。