Javascript XMLHttpRequest中哪些字符是安全的?

Javascript XMLHttpRequest中哪些字符是安全的?,javascript,ajax,Javascript,Ajax,我想以二进制形式发送游戏结果数据,部分是为了提高效率(每个项目发送6个字节,而不是13个字节……这将使要发送的数据总量减少一半以上,而且可能会有几百个这样的项目,结果是巨大的节省),部分是为了混淆(监控网络活动的人会看到看似随机的字节,而不是可分辨的数据) 我的“代码”(尚未使用,只是一个原型)如下所示: String.fromCharCode.apply(null,somevar.toString(16).split(/(?=(?:..)+$)/).map(function(a) {retur

我想以二进制形式发送游戏结果数据,部分是为了提高效率(每个项目发送6个字节,而不是13个字节……这将使要发送的数据总量减少一半以上,而且可能会有几百个这样的项目,结果是巨大的节省),部分是为了混淆(监控网络活动的人会看到看似随机的字节,而不是可分辨的数据)

我的“代码”(尚未使用,只是一个原型)如下所示:

String.fromCharCode.apply(null,somevar.toString(16).split(/(?=(?:..)+$)/).map(function(a) {return parseInt(a,16);}))
这将把任何整数值转换成二进制字符串值

然而,我似乎记得AJAX和二进制数据是不会混合的。我想知道哪些值的范围是可以安全使用的。我应该坚持使用32-255,还是更安全地坚持使用32-127?在32-255的情况下,我可以在上面的代码中使用15作为基数,并将32添加到所有数字中,这样对我来说“dw”就行了


但实际上我更感兴趣的是字符范围问题,以及是否有跨浏览器(在支持画布的浏览器中)传输二进制数据的方法?

AJAX和二进制数据不会相互冲突。发生的情况是,当您调用AJAX时,数据作为表单数据发布。发布表单数据时,通常将表单数据编码为application/x-www-form-url-encode。编码的数据只包含字母/数字和某些特殊字符。F或者,例如,空间被编码为%20。因此,即使您将“普通”字母转换为二进制,它也可能不会为您节省任何空间,因为最终所有内容都必须重新编码。

很公平,尽管这并不能真正回答我的问题:p出于好奇,
JSON.stringify
会正确处理它吗?“二进制数据”涵盖了所有可能的字符。表示字符串应转换为Unicode,然后编码为UTF-8。唯一的“原始”容器是
ArrayBuffer
,这不是所有浏览器都支持的。您可以
ArrayBuffer
s,就像发送
Blob
s(文件)一样