一些字符编码无关的格式下面的代码已经从一个答案提取到这个StackOverflow question,应该帮助您解决您的问题。
function stringToBytesFaster (str) {
var ch, st, re = [], j=0;
for (var i = 0; i < str.length; i++) {
ch = str.charCodeAt(i);
if(ch < 127)
{
re[j++] = ch & 0xFF;
}
else
{
st = []; // clear stack
do {
st.push(ch & 0xFF); // push byte to stack
ch = ch >> 8; // shift value down by 1 byte
}
while (ch);
// add stack contents to result
// done because chars have "wrong" endianness
st = st.reverse();
for(var k=0;k<st.length; ++k)
re[j++] = st[k];
}
}
// return an array of bytes
return re;
}
var str = "\x8b\x00\x01\x41A\u1242B\u4123C";
alert(stringToBytesFaster(str)); // 139,0,1,65,65,18,66,66,65,35,67
这将通过操纵数据从服务器端来完成,不是吗?这种方法的问题是我不控制数据的来源,因为它是一个远程的外部服务器。那么,实际上即时通过使用代理脚本绕过相同的原产地政策,所以我想我可以那样做。但即时通讯设法避免这个原因,我想利用CORS机制。在这种情况下,我不能在数据到达浏览器之前触摸数据。 – 2012-02-01 09:17:40