• 字符串转换成16进制
  • 16进制转换成字符串

字符串转换成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); // 输出 "48656c6c6f20e4b896e7958c21"

需要注意的是,由于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); // 输出 "Hello World!"

需要注意的是,由于JavaScript字符串的编码方式是UTF-16,因此如果十六进制字符串表示的是UTF-8编码的文本,那么使用该方法可能会导致字符串被错误地解码。在这种情况下,您需要使用一些第三方库,如iconv-lite等,来将字符串正确地解码。