Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript hex2bin实现_Javascript_Php - Fatal编程技术网

JavaScript hex2bin实现

JavaScript hex2bin实现,javascript,php,Javascript,Php,我试图实现一个类似PHP的JShex2bin。我在JS中发现了一些hex2bin版本,但所有这些都显示了相同的结果,这与PHP结果不同 例如,字符串440EF96DB9A2225C32E031659DF2608B49932F0D8AFAC46F74FA56FF3E1AE952如下所示: 正如我所看到的,结果非常相似,但仍然不同。有什么不对劲吗?没有什么不对劲。结果相同,但字符串的可视化方式不同。PHP和JavaScript以不同的方式输出某些字符。以代码点为249的字符为例: echo chr

我试图实现一个类似PHP的JS
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?二进制数据的哈希有问题吗?