字符串转16进制数
strToNumber(str) {
var ret = '';
var r = /[0-9a-zA-Z_.~!*()]/;
for (var i = 0, l = str.length; i < l; i++) {
if (r.test(str.charAt(i))) {
ret += str.charCodeAt(i).toString(16);
} else {
ret += encodeURIComponent(str.charAt(i)).replace(/%/g, '');
}
}
return '0x' + ret;
}
十六进制转字符串
numberToStr(str) {
var ret = '';
var tmp = '';
for (var i = 0; i < str.length - 1; i += 2) {
var c = String.fromCharCode(parseInt(str.substr(i, 2), 16));
if (c.charCodeAt() > 127) {
tmp += '%' + str.substr(i, 2);
if (tmp.length == 9) {
ret += decodeURIComponent(tmp);
tmp = '';
}
} else {
ret += c;
}
}
return ret;
}