JavaScript hex2bin实现
我试图实现一个类似PHP的JSJavaScript hex2bin实现,javascript,php,Javascript,Php,我试图实现一个类似PHP的JShex2bin。我在JS中发现了一些hex2bin版本,但所有这些都显示了相同的结果,这与PHP结果不同 例如,字符串440EF96DB9A2225C32E031659DF2608B49932F0D8AFAC46F74FA56FF3E1AE952如下所示: 正如我所看到的,结果非常相似,但仍然不同。有什么不对劲吗?没有什么不对劲。结果相同,但字符串的可视化方式不同。PHP和JavaScript以不同的方式输出某些字符。以代码点为249的字符为例: echo chr
hex2bin
。我在JS中发现了一些hex2bin版本,但所有这些都显示了相同的结果,这与PHP结果不同
例如,字符串440EF96DB9A2225C32E031659DF2608B49932F0D8AFAC46F74FA56FF3E1AE952
如下所示:
正如我所看到的,结果非常相似,但仍然不同。有什么不对劲吗?没有什么不对劲。结果相同,但字符串的可视化方式不同。PHP和JavaScript以不同的方式输出某些字符。以代码点为249的字符为例:
echo chr(249);
// Equivalent to
echo hex2bin("F9");
输出为“�".
而在JavaScript中,相同字符的输出为“ù”:
console.log(String.fromCharCode(249));
您不应该依赖二进制数据的文本表示。@tkausl是的,您是对的,但即使这些结果中的md5也会给出不同的值。如何对它们进行散列?使用PHP中的标准函数,使用JS中的自定义md5实现。但是!例如,如果我对任何字符串进行散列,这两个函数都会给出相同的结果。这可能是个问题使用JSMD5?二进制数据的哈希有问题吗?