如何实现 hex2bin()?
我需要在 Javascript 和 PHP 之间进行通信(我使用 jQuery 进行 AJAX),但 PHP 脚本的输出可能包含二进制数据。这就是为什么我在 PHP 端使用 bin2hex()
和 json_encode()
。
如何使用 JavaScript 将十六进制字符串转换为二进制字符串?
I need to communicate between Javascript and PHP (I use jQuery for AJAX), but the output of the PHP script may contain binary data. That's why I use bin2hex()
and json_encode()
on PHP side.
How do I convert the hexadecimal string in binary string, with JavaScript?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(10)
回答您的问题:
以下是您可能会发现对处理二进制数据有用的一些其他函数:
To answer your question:
Here are some further functions you may find useful for working with binary data:
JavaScript 不支持二进制数据。不过,您可以使用常规字符串来模拟这一点。
JavaScript doesn't have support for binary data. Nevertheless you can emulate this with regular strings.
感谢安德里斯!
有关此主题(dex2bin、bin2dec)的其他有用信息可以在此处< /a>.
据此,这是一个 bin2hex 解决方案:
thanks to Andris!
Other useful information about this topic (dex2bin,bin2dec) can be found here.
According to that, here is a
bin2hex
solution:虽然不是实际问题的答案,但在这种情况下了解如何反转该过程可能很有用:
例如,在
b637eb9146e84cb79f6d981ac9463de1
上使用hex2bin
返回¶7ëFèL·mÉF=á
,然后将其传递给bin2hex
返回b637eb9146e84cb79f6d981ac9463de1
。将这些函数原型化为
String
对象也可能很有用:Although not an answer to the actual question, it is perhaps useful in this case to also know how to reverse the process:
As an example, using
hex2bin
onb637eb9146e84cb79f6d981ac9463de1
returns¶7ëFèL·mÉF=á
, and then passing this tobin2hex
returnsb637eb9146e84cb79f6d981ac9463de1
.It might also be useful to prototype these functions to the
String
object:所有建议的解决方案都使用
String.fromCharCode
,为什么不简单地使用unescape
?进而:
All proposed solutions use
String.fromCharCode
, why not simply usingunescape
?and then:
参考node.js(不在浏览器中)。
基本上,它都是过度设计的,并且效果不佳。
响应不一致,尽管从文本角度来看,它们在位方面是相同的,但一切都到处都是:
在节点中实现此操作的正确方法是:
希望这会有所帮助。
With reference to node.js ( not in browser ).
Basically it's all over-engineered and does not work well.
responses are out of alignment and though text-wise they are the same bit wise everything is all over the place :
The proper way to implement this in node is :
Hope this helps.
这是 JS 中 hex2bin 的实现,它接受一个字符串并返回 Uint8Array,在浏览器和 Nodejs 中都可以工作,
以及它的逆,
Here is an implementation of hex2bin in JS that takes a string and returns Uint8Array, works both in browsers and nodejs,
And its inverse,
如果有人需要另一个方向(二进制到十六进制),这里是:
If someone needs the other direction (bin to hex), here is it:
JavaScript 实际上包含对二进制数据的支持。请参阅
Uint8Array
。只需从数组中读取每个字节并将其转换为十六进制即可。
JavaScript does actually contain support for binary data. See
Uint8Array
.Just read each byte from the array and convert it into hexadecimal.