gpt4 book ai didi

JavaScript hex2bin 实现

转载 作者:行者123 更新时间:2023-11-30 14:15:52 30 4
gpt4 key购买 nike

我试图实现 PHP 的 hex2bin 的 JS 模拟。我在 JS 中找到了几个版本的 hex2bin,但所有这些都显示相同的结果,与 PHP 结果不同。

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

enter image description here

如我所见,结果非常相似,但仍然不同。有什么问题吗?

最佳答案

没有错。结果相同,但字符串的可视化方式不同。 PHP 和 JavaScript 以不同方式输出某些字符。以代码点为 249 的字符为例:

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

输出为“�”。

而在 JavaScript 中,相同字符的输出是“ù”:

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

其他字符可能在一个中根本不可见,但在另一个中可见。两种语言在内部字符编码方面有所不同,这也可能在它们的字符串呈现中发挥作用。

如果要确保它们相同,则将 hex2bin 输出表示为 base64 编码:

在 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=

关于JavaScript hex2bin 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53575031/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com