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

JavaScript可以处理二进制数据吗?,javascript,ajax,xmlhttprequest,content-type,byte,Javascript,Ajax,Xmlhttprequest,Content Type,Byte,请允许我以情境导向的方式描述我的问题: 假设Internet Explorer仍然是主要的web浏览器(Firefox有用于二进制处理的文档): Internet Explorer中的XMLHttpRequest.responseText或XMLHttpRequest.responseXML需要txt或xml/xhtml/html,但服务器响应是什么呢?使用MIME类型application/octet的XMLHttpRequest?响应字符串中的字符是否都小于256?(该字符串的每个字符

请允许我以情境导向的方式描述我的问题:

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

Internet Explorer中的XMLHttpRequest.responseText或XMLHttpRequest.responseXML需要txt或xml/xhtml/html,但服务器响应是什么呢?使用MIME类型application/octet的XMLHttpRequest?响应字符串中的字符是否都小于256?(该字符串的每个字符<256)?非常感谢您的直截了当的回答,我没有Web服务器环境,所以我不知道如何测试它

因为txt或xml的使用有一个字符集编码的问题,我不知道如何处理一个编码xml的#[[CDDATA节点(例如:UTF-8,ASCII,)在JavaScript中,当我获取NodeText时,docObj是否返回字节或解码字符?如果它是解码字符,根据httpresponse中指示的字符集的标题,它将是错误的

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

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

这很奇怪吗?还是错过了基本的东西

编辑:我相信问题是这样的:JavaScript能安全地处理非Unicode编码的字符串吗?这样做有什么问题吗?


编辑:否,我的意思是,如果http头:内容类型为“应用程序/八位字节”,当我获取XMLHttpRequestobj.responseText时,Internet Explorer是否会尝试将其解码为(16位Unicode或Internet Explorer本地设置字符集)使用JavaScript?还是它(Internet Explorer)只需将响应体的每个字节包装为JavaScript字符串,然后该字符串中的每个字符小于或等于256(字符如果我正确理解您的问题,简短的回答是:是的,每个字节将包含一个介于0和255之间的值(即无符号).这就是字节的本质,由8位组成

但是为什么要这样做呢?您希望使用JavaScript处理哪些二进制数据

仅供参考,请阅读:

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

(下)


如果你想知道,我发现这篇文章有一个简单的。

请重新格式化。这是无法理解的。我想他想知道如何使用AJAX获取二进制数据。你可以在本地安装一个Web服务器,即在你自己的Linux工作站上(例如,等等),和。因为use txt或xml存在字符集编码问题,我不知道如何处理一个编码xml的#[[[CDDATA节点(例如:utf-8、ascii、gb18030)在javascript中,当我获取NodeText时,docObj是否会返回字节或解码字符?如果它是解码字符,根据httpresponse中的标题指示的字符集,这将是完全错误的。@Johnny:我想你的问题被否决了,因为它不清楚。我知道你的词汇不是很好,但我们真的必须精简k你想问什么。关于你的第二条评论:你应该用这些信息更新你的问题。如果你提供相关的源代码,这也会很有帮助。通常,HTTP头会否决文件内的编码集。请参阅,为了避免弄乱字符集,我希望服务器响应八位字节数据并强制字符串数据被编码为utf-8,但另一个字符集。如果响应是八进制的,那么我猜浏览器不会尝试解码响应“txt”是否有这种奇怪?或者错过了理解基本内容的机会?谢谢Marcel Korpel,我确实有改进文章问题的练习。我明天会做。