成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

微信小程序或者前端,輸入鍵盤自帶的emoji表情的編碼解碼

he_xd / 3424人閱讀

摘要:表情符的編碼解碼我之前在做微信小程序的時候遇到了一個問題,一些讓用戶輸入的地方,還有用戶的微信昵稱都有可能輸入鍵盤自帶的表情符,在服務(wù)端接收的時候會有異常,在前端進行加密后的簽名和后端接收到數(shù)據(jù)后再進行后的簽名不一樣。

表情符的編碼解碼

我之前在做微信小程序的時候遇到了一個問題,一些讓用戶輸入的地方,還有用戶的微信昵稱都有可能輸入鍵盤自帶的emoji表情符,在服務(wù)端接收的時候會有異常,在前端進行MD5加密后的簽名和后端接收到數(shù)據(jù)后再進行MD5后的簽名不一樣。

網(wǎng)上有給出一些解決方法,比如加載表情符圖片,修改數(shù)據(jù)庫的字符編碼等,這些方法都不太好,也沒有解決問題,后面找了比較久才找到合適的解決的方法:表情符編碼是十六進制的,需要把表情符轉(zhuǎn)碼成八進制的。

下面是我用到的代碼:

   
//把utf16的emoji表情字符進行轉(zhuǎn)碼成八進制的字符
function utf16toEntities(str) {
    var patt = /[ud800-udbff][udc00-udfff]/g; // 檢測utf16字符正則  
    return 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; // 轉(zhuǎn)換算法  
            return "&#" + code + ";";
        } else {
            return char;
        }
    });
}

//將編碼后的八進制的emoji表情重新解碼成十六進制的表情字符
function entitiesToUtf16(str) {
    return str.replace(/&#(d+);/g, function (match, dec) {
        let H = Math.floor((dec - 0x10000) / 0x400) + 0xD800;
        let L = Math.floor(dec - 0x10000) % 0x400 + 0xDC00;
        return String.fromCharCode(H, L);
    });
}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/100681.html

相關(guān)文章

  • 關(guān)于input一些問題解決方法分享

    摘要:輸入框首尾清除空格在中監(jiān)聽鍵盤事件移動端底部被彈出的鍵盤遮擋輸入框是通過一直放在頁面底部,當點擊進行輸入的時候,就會出現(xiàn)如下圖片情況有的機型會遮擋一些。 前言 input是我們接受來自用戶的數(shù)據(jù)常用標簽,在前端開發(fā)中,相信每個人都會用到這個標簽,所以在開發(fā)過程中也時候也會遇到一些問題,本文的內(nèi)容是我在跟input相愛相殺過程中產(chǎn)生的,在此記錄分享一下。如果喜歡的話可以點波贊/關(guān)注,支持...

    騫諱護 評論0 收藏0
  • 關(guān)于input一些問題解決方法分享

    摘要:輸入框首尾清除空格在中監(jiān)聽鍵盤事件移動端底部被彈出的鍵盤遮擋輸入框是通過一直放在頁面底部,當點擊進行輸入的時候,就會出現(xiàn)如下圖片情況有的機型會遮擋一些。 前言 input是我們接受來自用戶的數(shù)據(jù)常用標簽,在前端開發(fā)中,相信每個人都會用到這個標簽,所以在開發(fā)過程中也時候也會遇到一些問題,本文的內(nèi)容是我在跟input相愛相殺過程中產(chǎn)生的,在此記錄分享一下。如果喜歡的話可以點波贊/關(guān)注,支持...

    vibiu 評論0 收藏0
  • 關(guān)于input一些問題解決方法分享

    摘要:輸入框首尾清除空格在中監(jiān)聽鍵盤事件移動端底部被彈出的鍵盤遮擋輸入框是通過一直放在頁面底部,當點擊進行輸入的時候,就會出現(xiàn)如下圖片情況有的機型會遮擋一些。 前言 input是我們接受來自用戶的數(shù)據(jù)常用標簽,在前端開發(fā)中,相信每個人都會用到這個標簽,所以在開發(fā)過程中也時候也會遇到一些問題,本文的內(nèi)容是我在跟input相愛相殺過程中產(chǎn)生的,在此記錄分享一下。如果喜歡的話可以點波贊/關(guān)注,支持...

    chanjarster 評論0 收藏0
  • 那些年我們踩過亂碼坑

    摘要:因此導(dǎo)致亂碼的真正原因就是各平臺間對標準實現(xiàn)不一致包括實現(xiàn)的時間先后不同,以及所代表含義不同。日本幾家公司各自定義了一套標準,用兩個字節(jié)表示符號,日本電腦系統(tǒng)的一種編碼編碼是從到。在上找到了與標準的對應(yīng)關(guān)系。 歡迎關(guān)注個人網(wǎng)站:http://www.iamaddy.net/2016/07/emoji-unicode-parser/ 前言 這是一個由亂碼引發(fā)的故事。抱歉我暫時找不到更加慘...

    jhhfft 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<