当前位置: 首页 > 知识库问答 >
问题:

Javascript十六进制到ASCII与拉丁扩展符号

章玮
2023-03-14

我得到字符串的十六进制值,如下所示:

String has letters with diacritics: č,š,ř, ...

此字符串的十六进制值为:

0053007400720069006E006700200068006100730020006C0065007400740065007200730020007700690074006800200064006900610063007200690074006900630073003A0020010D002C00200161002C00200159002C0020002E002E002E

问题是,当我试图将这个值转换回ascii时,它不能很好地转换č,ř,。。并返回带有问号的小方框的符号,而不是这些符号。

我将十六进制转换为ascii的代码:

function convertHexadecimal(hexx){

  let index = hexx.indexOf("~");
  let strInfo = hexx.substring(0, index+1);
  let strMessage = hexx.substring(index+1); 
  var hex  = strMessage.toString();
  var str = '';     
  for (var i = 0; i < hex.length; i += 2){     
      str += String.fromCharCode(parseInt(hex.substr(i, 2), 16));     
  }
  console.log("Zpráva: " + str);
  var strFinal = strInfo + str;
  return strFinal; 
}

有人能帮我吗?

共有1个答案

马淳
2023-03-14

首先是一个示例解决方案:

let demoHex = `0053007400720069006E006700200068006100730020006C0065007400740065007200730020007700690074006800200064006900610063007200690074006900630073003A0020010D002C00200161002C00200159002C0020002E002E002E`;

function hexToString(hex) {
    let str="";
    for( var i = 0; i < hex.length; i +=4) {
       str += String.fromCharCode( Number("0x" + hex.substr(i,4)));
    }
    return str;
}
console.log("Decoded string: %s", hexToString(demoHex) );
 类似资料:
  • 问题内容: 如何将RGB格式的颜色转换为十六进制格式,反之亦然? 例如,转换为。 问题答案: 注 :这两个版本的期待整数值,并且,所以你需要,如果你有非整数值做自己的舍入。 以下将执行RGB到十六进制的转换,并添加任何所需的零填充: 转换另一种方式: 最后,在答案中讨论并在@cwolves的评论中建议使用的替代版本: 更新 这是它的一个版本,还解析了一个速记的三元组,例如“#03F”:

  • 问题内容: 我会马上追逐。现在,我正在开发基于Web的应用程序。它具有基于PHP REST的体系结构,可提供XML文档。在许多这些文档中,属性是十六进制编码的图片字符串。 在客户端,jQuery AJAX获取其中包含图片的XML文档。我需要在某些标签中显示上述图片。但是,我缺乏有关此类方法的知识,因此在这里寻求帮助。 目标:以十六进制或base64 >>> HTML显示的图像的JavaScript

  • 问题内容: 我正在编写一个go程序,将十六进制转换为int,binary和ascii。int和二进制文件工作正常,但是ascii引起了问题。如果输入的文本少于2个字符,则可以正常工作,但是如果输入的文本过多,则会导致出现格式错误的文本。我的代码如下: 输入十六进制“ 73616d706c65 ” 时的一些输出示例: 我已经做了很多搜索,并且看到了一些有关“符文”的文档,但是我不确定这是如何工作的。

  • 问题内容: 我有一个十六进制字符串,看起来像: 我需要使用Java将其转换为图像。我尝试过先使用org.apache.commons.codec.binary.Hex类转换为字节数组。FileOutputStream稍后将其转储到文件中。 但是,十六进制类中的解析器会阻塞,但解码器例外:奇数个字符。无论我使用哪种方法转换为字节数组,它都会失败。该文件格式绝对是JPEG。 我尝试从字符串中删除 此

  • 我试着从网上提取数据。很少有拉丁文字母是以纯十六进制形式出现的。 对于例如: 这个链接将变成 我怎么才能从这里得到拉丁字母。我想概括一下这一点,并对所有在我的数据帧中更改的拉丁字母都这样做。

  • 两周以来,我一直在努力和阅读来解决这个问题,但我尝试的一切都没有奏效:-( 我正在使用python 2.7。 据我所知,我确实有一个base64字符串,格式如下: 我想把它转换成十六进制字符串。00000000194BD636AEDEAE4C9827C9465288D7F40700BA89A9BA12E1314B81606DB385F3B7B100000074656E0000BA89A9BA12E