錯誤截圖:
參考了以下文章
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的值是一樣的。