繁体   English   中英

将十六进制转义字符转换为二进制

[英]converting hexadecimal escape chars to binary

我正在寻找一种将JavaScript字符统一转换为二进制的方法。 我面临的一个问题是我无法正确转换unescape函数中使用的字符串

document.write("HI"); ==> HI (case 1)
document.write("\x48\x49");  ==> HI (case 2)
document.write(unescape("%48%49")); ==> HI (case 3)

情况1:将“ HI”转换为二进制生成:

0100100001001001

情况2:将“ \\ x48 \\ x49”转换为二进制会生成:

0100100001001001

情况3:将“%48%49”转换为二进制会生成:

001001010011010000111000001001010011010000111001

我了解情况3发生了什么。它将每个char转换为二进制,而没有意识到这些char以十六进制表示。 我想知道是否有一种方法可以使情况3与情况1和情况2具有相同的二进制表示形式,而无需任何预处理?

即,是否有JavaScript,Python或任何其他语言的函数可以实现“%48”是用十六进制表示的一个字符并将其转换为二进制?

decodeURIComponent是适合此功能的函数。 不建议使用decode功能。 这是一个例子。

如果您在输入中输入%48%49并单击“转换”按钮,则会出现第二种情况。

 var test = document.querySelector("#test"); var btn = document.querySelector("#btn"); var result = document.querySelector("#result"); btn.addEventListener("click", function() { var value = decodeURIComponent(test.value); var resultText = ""; for (i = 0; i < value.length; i++) { resultText += value.charCodeAt(i).toString(2); } result.innerText = resultText; }); 
 <input type="text" id="test"> <button id="btn">Convert</button> <p id="result"></p> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM