JavaScript可以处理二进制数据吗?

时间:2010-05-12 09:42:57

标签: javascript ajax xmlhttprequest content-type byte

承认我以面向情境的方式描述我的问题:

假设Internet Explorer仍然是主导的Web浏览器(Firefox有二进制处理文档):

Internet Explorer中的XMLHttpRequest.responseText或XMLHttpRequest.responseXML需要txt或xml / xhtml / html,但是具有MIME TYPE application / octet的xmlHttprequest服务器响应呢?响应字符串中的字符是否都小于256? (该字符串的每个字符< 256)?非常感谢您的答案,我没有网络服务器环境,所以我不知道如何测试它。

因为使用txt或xml会出现字符集编码问题,而且我不知道如何处理#[[[一个编码xml的CDDATA节点(例如:UTF-8,ASCII,{{3})使用JavaScript,当我getNodeText时,docObj是否返回字节或解码的char?如果它是解码的char,根据httpresponse中的标题指示charSet,那就完全错了。

为了避免搞乱charSet,我希望服务器响应八位字节数据并强制将字符串数据编码为UTF-8,而另一个charSet以二进制格式编码。

如果响应是八进制的,那么我猜浏览器不会尝试解码响应“txt”。

这有点奇怪吗?或者错过理解基本的东西?

编辑:我认为问题是: JavaScript能否安全地处理未以Unicode编码的字符串?尝试这样做有什么问题?

编辑:不不不,我的意思是如果http-header:content-type是“application / octet”,当我得到XMLHttpRequestobj时,Internet Explorer会尝试将其解码为(16位Unicode或Internet Explorer本地设置字符集)。 responseText使用JavaScript?或者它(Internet Explorer)只是将响应主体的每个字节包装为JavaScript字符串,然后该字符串中的每个字符小于或等于256(字符<= 256)。

我说的是火星语吗?可悲的是,如果我是Marsian,我会在没有模糊问题的情况下成为游客。但是我在一个与火星至少有一处财产的国家:RED。

1 个答案:

答案 0 :(得分:1)

如果我正确理解你的问题,简短的回答是:是的,每个字节都包含0到255之间的值(无符号,即)。这只是字节的本质,由8位组成。

但你为什么要这样呢?您想使用JavaScript处理哪些二进制数据?

仅供参考,请阅读Mastering Ajax, Part 3: Advanced requests and responses in Ajax

  

这允许您确定是否   服务器将尝试返回二进制文件   数据而不是HTML,文本或XML   (这三个都容易多了   JavaScript中的进程比二进制   数据)。

Useful HEAD requests下)。

如果您想知道,我发现这篇文章只有一个简单的Google search