最近在做一个地图的数据流遇到了问题。就是对方要求采用二进制流的方式把数据发来给我解析。
目前JS中获取二进制的方式都是采用XMLHTTP 。
查到很多的网站已经明确了Ajax是不支持二进制的方式的。我在IE之中试图获取,但是只能获取几个字节就断了。原因是0x0000。二进制当中存在大量的这种数据。众所周知,0x00就是ASCII的结束标志。
在FF中,我们可以使用如下的代码来取得二进制数据流,不会断流:
-
//fetches BINARY FILES synchronously using XMLHttpRequest
-
load_url = function(url) {
-
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
-
var req = new XMLHttpRequest();
-
req.open('GET',url,false);
-
//XHR binary charset opt by Marcus Granado 2006 [http://mgran.blogspot.com]
-
req.overrideMimeType('text/plain; charset=x-user-defined');
-
req.send(null);
-
if (req.status != 200) return '';
-
return req.responseText;
-
}
-
-
var filestream = load_url(url);
-
var abyte = filestream.charCodeAt(x) & 0xff;
在FF中获取之后,发现数字和字母可以通过a= charCodeAt(i) 来得到Ascii码。然后如果是字母,通过string.fromcharcode(a) 来解析得到内容。
但是这种是Acsii编码方式,不支持中文等其他字符。所以遇到中文即变成乱码。
有人说在IE中通过adodb.stream来获取数据流。但是经过不断的尝试,都不能用脚本创建这个对象。因为浏览器没有权限来创建这个对象。
在此,希望有这方面经验的朋友能给与指点。 谢谢
分享到:
相关推荐
在IT领域,数据库中存储图片通常以二进制流(Binary Stream)的形式进行,这是因为二进制流可以高效地处理图像数据,同时节省存储空间。本文将深入探讨如何实现从数据库中的二进制流转换为图片,并将其保存到本地...
本文将深入探讨如何在C++中进行十进制到十六进制以及十六进制到二进制的转换,这对于我们理解和处理计算机内部的数据表示至关重要。 首先,让我们从十进制转十六进制开始。在C++中,我们可以使用内置函数`std::hex`...
总之,二进制运算在C++编程中扮演着至关重要的角色,无论是数据结构的设计、算法的优化还是硬件层面的接口控制,都离不开对二进制运算的深刻理解和灵活运用。希望本文能为读者提供一个全面而深入的视角,激发大家...
在计算机科学中,二进制、十进制和十六进制是三种常见的数值表示方式,它们在编程、网络通信和数据存储等领域起着至关重要的作用。理解这些数字系统的转换是IT基础知识的重要组成部分。 二进制(Binary)系统是基于...
在计算机科学中,二进制形式查看文件是一个重要的操作,特别是在进行低级别数据处理、调试或分析时。这种查看方式允许我们看到文件的实际字节序列,而不仅仅是字符表示。二进制文件通常包含非文本数据,如图像、音频...
进制转换是计算机科学中的基础概念,用于在不同的数值系统之间转换数字。...通过使用进制转换工具,我们可以更有效地处理和解析二进制、八进制、十进制和十六进制数据,从而更好地进行计算和沟通。
为了查看和解析二进制文件,我们可以使用各种工具,如`hexdump`(在Linux或MacOS中)、`xxd`(跨平台)或Windows的`Resource Hacker`。这些工具将二进制数据转换为十六进制表示,便于分析。例如,打开一个二进制文件...
JavaScript(简称JS)是一种广泛应用于Web开发的脚本语言,它在不同的浏览器中可能存在兼容性问题,特别是Internet Explorer(IE)和Firefox(FF)之间。这两个浏览器对JS的实现方式有所不同,导致某些特性或功能在...
在IT领域,二进制与汉字的转换是计算机科学中的基础操作,特别是在文本编码、数据存储和通信协议中。本文将深入探讨“二进制转汉字”和“汉字转二进制”的互转程序,以及如何使用C#编程语言实现这一功能。 首先,...
本篇将详细阐述如何在Java中进行二进制、十进制和十六进制之间的转换,以及字节数组与十六进制字符串的相互转换。 一、进制转换 1. **二进制转十进制**:Java中可以使用`Integer.parseInt()`或`Long.parseLong()`...
在这些格式中,二进制颜色代码是一种不太常见的表示方法,它使用0和1来表示颜色。二进制颜色代码通常需要转换为更常见的十六进制或RGB形式,以便在CSS中使用。例如,纯黑色的二进制代码为...
在计算机科学和网络领域,数字通常以不同的进制表示,如十进制、二进制、八进制和十六进制。这些进制系统在处理数据、编程和网络通信时都发挥着重要作用。以下是关于这四种进制系统及其转换的知识点详解: 1. **十...
在编程领域,尤其是在C#语言中,数据的进制转换是一项基本操作,它涉及将数值从一种基数(如十进制)转换为另一种基数(如二进制、八进制或十六进制)。这里我们将详细探讨这个主题,并提供C#代码实现。 一、十进制...
在计算机科学和信息技术领域,数字通常以不同的基数或进制表示,其中最常见的是二进制(Binary)、八进制(Octal)、十进制(Decimal)和十六进制(Hexadecimal)。进制转换是理解和操作这些数字系统的基础,尤其在...
在C#中,我们可以轻松地实现不同进制之间的转换,包括十进制、十六进制和二进制。在Visual Studio 2008环境下,我们可以创建一个窗体应用程序来直观地进行这些转换。下面将详细介绍如何在C#中进行进制转换以及如何...
在计算机领域,文件可以分为两种主要类型:文本文件和二进制文件。了解如何区分这两种文件类型对于数据处理和程序开发至关重要。文本文件通常由可读的字符组成,如ASCII编码,而二进制文件则包含机器可理解的原始位...
在计算机科学中,二进制、八进制和十六进制是三种常见的数值表示系统,它们在编程和数据处理中扮演着重要角色。本文将深入探讨这些数字系统的基础概念、转换方法以及它们在IT领域的应用。 二进制(Binary)是计算机...
二进制文件类型查看器是一种实用的软件工具,专门设计用于识别和查看各种二进制文件的类型。在计算机科学中,"二进制文件"指的是由机器代码组成,可以直接由计算机硬件执行的文件,与文本文件(由可读字符组成)形成...
在计算机科学领域,不同的进制转换是至关重要的基础概念,特别是在数据存储、计算和编码方面。进制转换主要包括二进制、八进制、十进制和十六进制之间的互相转换。下面我们将详细讨论这些进制转换的方法。 1. 十...
以下是关于IE和FF部分区别的详细分析: 1. **边界问题**: - 在CSS中,IE将边框宽度计算在元素的总宽度和高度之内,而Firefox则将边框外加到元素尺寸上。例如,一个设置为`width:100px;height:100px;border:1px ...