[英]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.