JS代码16进制转换成字符串后乱码问题
时间: 2023-10-07 13:12:17 浏览: 215
JS代码中16进制转换成字符串后乱码的问题,通常是因为在转换时使用了不正确的编码方式,导致字符无法正确地解码成对应的字符。
一种常见的解决方法是使用 `decodeURIComponent()` 函数来对转换后的字符串进行解码。例如:
```javascript
let hexStr = "68656c6c6f20776f726c64"; // "hello world" 的16进制表示
let str = decodeURIComponent(hexStr.replace(/(..)/g, '%$1'));
console.log(str); // 输出 "hello world"
```
在上面的代码中,先使用正则表达式将16进制字符串按每两个字符分割成一组,然后在每组字符前加上 `%`,最后使用 `decodeURIComponent()` 函数进行解码,得到正确的字符串。
另外,还需要确保源码和目标编码方式相同,否则转换后的字符串仍可能存在乱码问题。
阅读全文