用javascripts中的汉字将十六进制解码为字符串

用javascripts中的汉字将十六进制解码为字符串,javascript,hex,decode,ethereum,Javascript,Hex,Decode,Ethereum,我把十六进制转换成字符串。我有十六进制字符串:“0xE4B883E5BDA9E7A59EE4B99E9B1BC” 并使用此代码: 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.su

我把十六进制转换成字符串。我有十六进制字符串:“0xE4B883E5BDA9E7A59EE4B99E9B1BC” 并使用此代码:

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;
}
十六进制到ascii码(str1){
var hex=str1.toString()子字符串(2,str1.length);
var-str='';
对于(变量n=0;n
正确的回答必须是“七彩神仙鱼", 但我的回答是“ä¸åå½çäääéêêêêêê½èç。
我的代码有什么问题。请帮助我,谢谢。

十六进制字符串表示使用UTF-8编码的字节序列编码的中文文本

如果从十六进制字符串中删除前导“0x”,并在每两个字符前插入“%”字符,则得到如下字符串:

%e4%b8%83%e5%bd%a9%e7%a5%9e%e4%bb%99%e9%b1%bc
这就是它在URI中的外观,您可以使用
decodeURIComponent
从UTF-8将其解码回来,例如:

“严格使用”;

var hex=“0xe4b883e5bda9e7a59ee4bb99e9b1bc”; 十六进制=十六进制子字符串(2); 十六进制=十六进制。替换(/../g,hex2=>('%'+hex2)); 变量字符串=解码元件(十六进制);
console.log(string);
您是如何获得十六进制字符串的,它不应该是“4e035f69795e4ed99c7c”吗“?0xe4b883e5bda9e7a59ee4bb99e9b1bc是来自后端的响应。在前端,我必须将其转换为字符串并显示。后端使用什么编码来编码它发送的字符串。在获取数据时,您不能指定这一点吗?它是utf-8编码好消息是“e4b883e5bda9e7a59ee4bb99e9b1bc”是七彩神仙鱼". 将其转换为UTF-32并返回UTF-16就证明了这一点。坏消息是,在JavaScript中转换UTF编码通常是解决问题最复杂的方法。如果您能解释如何以及为什么,可能会有更好的解决方案。”七彩神仙鱼“是否作为十六进制字符串发送?