Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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-读取二进制文件并从中生成字符串_Javascript_File_Binary - Fatal编程技术网

javascript-读取二进制文件并从中生成字符串

javascript-读取二进制文件并从中生成字符串,javascript,file,binary,Javascript,File,Binary,我有一个php脚本,可以生成一个二进制文件(是某种地图压缩,其实并不重要)。 例如,我可以将其保存为图像并发送 我现在需要的是从该文件生成一个字符串。更清楚地说。。。我想得到位(当然忽略图像开销),最后的字符串必须是100101010101111。。。你明白了 如果可以,我如何在javascript中实现这一点 谢谢您的帮助。您可以调用AJAX来检索文件的内容,然后使用位运算符生成您正在努力获取的二进制表示字符串 当然,php脚本必须可以通过HTTP请求访问 实现AJAX GET请求最简单的方法

我有一个php脚本,可以生成一个二进制文件(是某种地图压缩,其实并不重要)。 例如,我可以将其保存为图像并发送

我现在需要的是从该文件生成一个字符串。更清楚地说。。。我想得到位(当然忽略图像开销),最后的字符串必须是100101010101111。。。你明白了

如果可以,我如何在javascript中实现这一点


谢谢您的帮助。

您可以调用AJAX来检索文件的内容,然后使用位运算符生成您正在努力获取的二进制表示字符串

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

实现AJAX GET请求最简单的方法之一是使用
jQuery.GET
,您可以阅读更多关于它的信息

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

我自己编写了一个字符串到二进制转换器的示例实现:

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);
}
var data=“h€llo world”;
var binary_string=“”;
for(数据中的变量idx){
var v=data.charCodeAt(idx);
做{
var b=v&0xFF;
对于(变量i=0;i<8;++i)
二进制字符串+=(b&(1=8);
}

binary_string=
011101000 10101100 0010000001101101111 0010000001111111 011011111 011110010 01101100 011001100 01100100100000

您可以进行AJAX调用以检索文件的内容,然后使用位运算符生成您正在努力获取的二进制表示字符串

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

实现AJAX GET请求最简单的方法之一是使用
jQuery.GET
,您可以阅读更多关于它的信息

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

我自己编写了一个字符串到二进制转换器的示例实现:

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);
}
var data=“h€llo world”;
var binary_string=“”;
for(数据中的变量idx){
var v=data.charCodeAt(idx);
做{
var b=v&0xFF;
对于(变量i=0;i<8;++i)
二进制字符串+=(b&(1=8);
}

binary_string=
011101000 10101100 00100000011011100 011011111 00100000011011011111 011011111011110010 011011001100 011001100 00100000

将每一位存储为字符并不是base64。而且效率要低得多。将每一位存储为字符并不是base64。而且效率要低得多。