承认我以面向情境的方式描述我的问题:
假设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。
答案 0 :(得分:1)
如果我正确理解你的问题,简短的回答是:是的,每个字节都包含0到255之间的值(无符号,即)。这只是字节的本质,由8位组成。
但你为什么要这样呢?您想使用JavaScript处理哪些二进制数据?
仅供参考,请阅读Mastering Ajax, Part 3: Advanced requests and responses in Ajax:
这允许您确定是否 服务器将尝试返回二进制文件 数据而不是HTML,文本或XML (这三个都容易多了 JavaScript中的进程比二进制 数据)。
如果您想知道,我发现这篇文章只有一个简单的Google search。