我将十六进制转换为字符串。我有一个十六进制字符串:“ 0xe4b883e5bda9e7a59ee4bb99e9b1bc” 并使用以下代码:
hex_to_ascii(str1){
var hex = str1.toString().substring(2, str1.length);
var str = '';
for (var n = 0; n < hex.length; n += 2) {
str += String.fromCharCode(parseInt(hex.substr(n, 2), 16));
}
return str;
}
正确的回答必须是“七彩神仙鱼”,但我的回答是“ä¸å½©ç¥ä»é±¼”。 我的代码有什么问题。请帮助我,谢谢。
答案 0 :(得分:1)
十六进制字符串表示使用UTF-8编码按字节序列编码的中文文本。
如果从十六进制字符串中删除前导“ 0x”并在每两个字符之前插入一个“%”字符,则会得到如下字符串:
this.audio.play()
this.audio.pause()
这是它在URI中的外观,您可以使用%e4%b8%83%e5%bd%a9%e7%a5%9e%e4%bb%99%e9%b1%bc
从UTF-8解码回去,例如:
decodeURIComponent