2011-12-12 68 views
1

我有一个生成二进制文件(是某种地图压缩,并不重要)的PHP脚本。 我可以将其保存为图像并发送。JavaScript - 读取二进制文件,并从它制作一个字符串

我现在需要的是从该文件中创建一个字符串。要更清楚一点...我想获取这些位(当然,忽略图像开销),最后的字符串必须是类似于100101010101111的东西......你明白了。

可以,如果是的话我该如何做到这一点在JavaScript?

谢谢你的帮助。

+0

一样,base64编码? –

+0

将每个位存储为字符不是base64。而且效率低得多。 – mk12

回答

4

您可以进行AJAX调用来检索文件的内容,然后使用按位运算符来生成要争取的二进制表示字符串。

当然,php脚本必须可以通过HTTP请求访问。

一个实现AJAX GET请求的最简单的方法是使用jQuery.get,你可以阅读更多关于here

关于二进制表示的生成,有几种在线实现。

我写了一个字符串的我自己的样本实现二进制转换器:

var data   = "h€llo world "; 
var binary_string = ""; 

for (var idx in data) { 
    var v = data.charCodeAt (idx); 

    do { 
    var b = v & 0xFF; 

    for (var i =0; i < 8; ++i) 
     binary_string += (b & (1<<(7-i))) ? '1' : '0'; 

    binary_string += ' '; 

    } while (v >>= 8); 
} 

binary_string = 01101000 10101100 00100000 01101100 01101100 01101111 00100000 01110111 01101111 01110010 01101100 01100100 00100000