背景:
最近對接接口的時候需要將請求參數轉為16進制,因此研究了下這個bin2hex。在js中轉16進制 使用的是:
str.charCodeAt(i).toString(16);
在遇到中文的時候編碼就會不一致,因此需要特殊對待中文
function bin2Hex(str) { var re = /[\u4E00-\u9FA5]/; var ar = []; for (var i = 0; i < str.length; i++) { var a = ''; if (re.test(str.charAt(i))) { // 中文 a = encodeURI(str.charAt(i)).replace(/%/g, ''); } else { a = str.charCodeAt(i).toString(16); } ar.push(a); } str = ar.join(""); return str; }
以上是把%過濾掉了,如不不要過濾就把replace方法去掉即可