簡體   English   中英

JavaScript hex2bin實現

[英]JavaScript hex2bin implementation

我試圖實現PHP的hex2bin的JS類似物。 我在JS中找到了hex2bin的幾個版本,但是所有這些都顯示相同的結果,這與PHP結果不同。

例如,字符串440EF96DB9A2225C32E031659DF2608B49932F0D8AFAC46F74FA56FF3E1AE952如下所示:

在此處輸入圖片說明

如我所見,結果非常相似,但仍然不同。 有什么事嗎

沒有錯誤。 結果相同,但是字符串的顯示方式不同。 PHP和JavaScript輸出某些字符的方式有所不同。 以代碼點為249的字符為例:

echo chr(249);
// Equivalent to 
echo hex2bin("F9");

輸出為“。”。

在JavaScript中,相同字符的輸出為“ù”:

 console.log(String.fromCharCode(249)); 

其他字符可能完全看不到,但在另一個中可見。 兩種語言的內部字符編碼不同,這在它們的字符串呈現中也可能起作用。

如果要確保它們相同, hex2bin base64編碼表示hex2bin輸出:

在PHP( base64_encode )中:

base64_encode(hex2bin("440EF96DB9A2225C32E031659DF2608B49932F0D8AFAC46F74FA56FF3E1AE952"));

在JavaScript( btoa )中:

 const hex2bin = s => s.match(/../g).map(c => String.fromCharCode(parseInt(c, 16))).join``; console.log(btoa(hex2bin("440EF96DB9A2225C32E031659DF2608B49932F0D8AFAC46F74FA56FF3E1AE952"))); 

兩種輸出:

RA75bbmiIlwy4DFlnfJgi0mTLw2K + sRvdPpW / z4a6VI =

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM