一些字符編碼無關的格式下面的代碼已經從一個答案提取到這個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