摘要:表情符的編碼解碼我之前在做微信小程序的時候遇到了一個問題,一些讓用戶輸入的地方,還有用戶的微信昵稱都有可能輸入鍵盤自帶的表情符,在服務端接收的時候會有異常,在前端進行加密后的簽名和后端接收到數據后再進行后的簽名不一樣。
表情符的編碼解碼
我之前在做微信小程序的時候遇到了一個問題,一些讓用戶輸入的地方,還有用戶的微信昵稱都有可能輸入鍵盤自帶的emoji表情符,在服務端接收的時候會有異常,在前端進行MD5加密后的簽名和后端接收到數據后再進行MD5后的簽名不一樣。
網上有給出一些解決方法,比如加載表情符圖片,修改數據庫的字符編碼等,這些方法都不太好,也沒有解決問題,后面找了比較久才找到合適的解決的方法:表情符編碼是十六進制的,需要把表情符轉碼成八進制的。
下面是我用到的代碼:
//把utf16的emoji表情字符進行轉碼成八進制的字符 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; // 轉換算法 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); }); }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/100681.html
摘要:輸入框首尾清除空格在中監聽鍵盤事件移動端底部被彈出的鍵盤遮擋輸入框是通過一直放在頁面底部,當點擊進行輸入的時候,就會出現如下圖片情況有的機型會遮擋一些。 前言 input是我們接受來自用戶的數據常用標簽,在前端開發中,相信每個人都會用到這個標簽,所以在開發過程中也時候也會遇到一些問題,本文的內容是我在跟input相愛相殺過程中產生的,在此記錄分享一下。如果喜歡的話可以點波贊/關注,支持...
摘要:輸入框首尾清除空格在中監聽鍵盤事件移動端底部被彈出的鍵盤遮擋輸入框是通過一直放在頁面底部,當點擊進行輸入的時候,就會出現如下圖片情況有的機型會遮擋一些。 前言 input是我們接受來自用戶的數據常用標簽,在前端開發中,相信每個人都會用到這個標簽,所以在開發過程中也時候也會遇到一些問題,本文的內容是我在跟input相愛相殺過程中產生的,在此記錄分享一下。如果喜歡的話可以點波贊/關注,支持...
摘要:輸入框首尾清除空格在中監聽鍵盤事件移動端底部被彈出的鍵盤遮擋輸入框是通過一直放在頁面底部,當點擊進行輸入的時候,就會出現如下圖片情況有的機型會遮擋一些。 前言 input是我們接受來自用戶的數據常用標簽,在前端開發中,相信每個人都會用到這個標簽,所以在開發過程中也時候也會遇到一些問題,本文的內容是我在跟input相愛相殺過程中產生的,在此記錄分享一下。如果喜歡的話可以點波贊/關注,支持...
摘要:因此導致亂碼的真正原因就是各平臺間對標準實現不一致包括實現的時間先后不同,以及所代表含義不同。日本幾家公司各自定義了一套標準,用兩個字節表示符號,日本電腦系統的一種編碼編碼是從到。在上找到了與標準的對應關系。 歡迎關注個人網站:http://www.iamaddy.net/2016/07/emoji-unicode-parser/ 前言 這是一個由亂碼引發的故事。抱歉我暫時找不到更加慘...
閱讀 3915·2021-11-16 11:50
閱讀 927·2021-11-11 16:55
閱讀 3659·2021-10-26 09:51
閱讀 856·2021-09-22 15:03
閱讀 3409·2019-08-30 15:54
閱讀 3260·2019-08-30 15:54
閱讀 2468·2019-08-30 14:04
閱讀 919·2019-08-30 13:53