2012-01-04 55 views
0

如果我有一個JavaScript字符串(可能包含Unicode字符),將其轉換爲UTF-8字節字符串的最佳方法是什麼,然後可以使用該字符串生成以下載荷以發送給通過jQuery的AJAX ?:服務器JavaScript字節字符串和jQuery AJAX

[含有大端4個字節(NBO)以下字符串的字節大小] [UTF-8編碼的字符串]

其次,一旦創建上述字節串,如何是否可以將它發送到服務器,而不受瀏覽器的干擾/損壞? (最好使用jQuery的AJAX功能)

在此先感謝:-)

+0

我不明白。什麼是「UTF-8字節字符串?」你爲什麼不發送一個UTF-8編碼的字符串?標題有什麼意義?爲什麼不使用JSON(或其他標準)而不是發明自己的專有格式? – 2012-01-04 14:43:10

回答

0

獲得四個字節的頭應該是很容易:

var len = str.length; 
var hdr = String.fromCharCode(
    (len >> 24) & 0xff, 
    (len >> 16) & 0xff, 
    (len >> 8) & 0xff, 
    (len >> 0) & 0xff 
); 

然後你可以在前面加上原來的。

但是請注意,Javascript使用UTF-16,而不是UTF-8!如果您的字符使用較高的代碼點,則需要將它們分別轉換爲UTF-8,然後在頭中考慮額外的長度。

發送數據「未重整」的服務器,除非你設法將它發送爲原料體數據的POST消息是很難的。 JSON編碼或URL編碼都將需要轉義特殊字符,儘管在這兩種情況下服務器都應該能夠簡單地重構原始的UTF-8流。