普遍接受的答案是您不能这样做。但是,越来越多的证据表明,基于存在读取非基本HTML类型的数据类型的项目的情况,这是不正确的。一些执行此操作的项目是ProtoBuf和Smokescreen的JavaScript版本。
Smokescreen是用JS编写的Flash解释器,因此,如果无法直接获取字节,这些项目将如何解决呢? Smokescreen的源代码可以在here中找到。我已经看过了,但是现在JS不是我的主要语言,解决方案使我望而却步。
最佳答案
他们俩都希望直接使用String
(在这种情况下为responseText
的XMLHttpRequest
)作为字节集合。
data = ... // a binary string
bytes = [];
for ( i = 0; i < data.length; i++ )
{
// This coverts the unicode character to a byte stripping
// off anything past the first 8 bits
bytes[i] = data.charCodeAt( i ) & 0xFF;
}