字符串转换成16进制
1 2 3 4 5 6 7 8 9 10 11 12
| function stringToHex(str) { var hex = ''; for(var i=0; i<str.length; i++) { var charCode = str.charCodeAt(i).toString(16); hex += (charCode.length < 2 ? '0' : '') + charCode; } return hex; }
var str = "Hello world!"; var hex = stringToHex(str); console.log(hex);
|
需要注意的是,由于JavaScript字符串的编码方式是UTF-16,因此如果十六进制字符串表示的是UTF-8编码的文本,那么使用该方法可能会导致字符串被错误地解码。在这种情况下,您需要使用一些第三方库,如iconv-lite等,来将字符串正确地解码。
16进制转换成字符串
1 2 3 4 5 6 7
| var hex = "48656c6c6f20576f726c6421"; var str = ''; for(var i=0; i<hex.length; i+=2) { str += String.fromCharCode(parseInt(hex.substr(i, 2), 16)); } console.log(str);
|
需要注意的是,由于JavaScript字符串的编码方式是UTF-16,因此如果十六进制字符串表示的是UTF-8编码的文本,那么使用该方法可能会导致字符串被错误地解码。在这种情况下,您需要使用一些第三方库,如iconv-lite等,来将字符串正确地解码。