向后台傳輸表情時,手機自帶輸入法emoji表情的輸入,提交及顯示——前端解決方案


//表情
    utf16toEntities(str) { //檢測utf16emoji表情 轉換為實體字符以供后台存儲
      var patt=/[\ud800-\udbff][\udc00-\udfff]/g;
      str = str.replace(patt, function(char){
        var H, L, code;
        if (char.length===2) {   //輔助平面字符(我們需要做處理的一類)
          H = char.charCodeAt(0); // 取出高位
          L = char.charCodeAt(1); // 取出低位
          code = (H - 0xD800) * 0x400 + 0x10000 + L - 0xDC00; // 轉換算法
          return "&#" + code + ";";
        } else {
          return char;
        }
      });
      return str;
    },

經過上述轉換,我們手機端輸入的emoji表情應該就可以提交到數據庫了,but...解決問題往往不會這么一帆風順,我們發現正常保存的emoji表情在頁面上不能正常顯示,我們前端采用vue開發,用{{}}將包含emoji字符實體的字符串渲染到頁面上時顯示的直接是這樣的字符實體,審查元素發現HTML內容是這樣,一時還不知道原因是什么,但一定是用{{}}渲染有問題,嘗試換用v-html.

 

 

轉自:https://www.cnblogs.com/kaidarwang/p/7458431.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM