JavaScript字节字符串和jQuery AJAX

时间:2012-01-04 14:39:51

标签: javascript jquery utf-8

如果我有一个JavaScript字符串(可能包含Unicode字符),那么将它转换为UTF-8字节字符串的最佳方法是什么,然后可以使用该字符串生成以下有效负载以通过jQuery的AJAX发送到服务器?:

[包含以下字符串的大端(NBO)字节大小的4个字节] [UTF-8编码字符串]

其次,一旦创建了上面的字节字符串,如何在不受浏览器干扰/破坏的情况下将其发送到服务器? (最好使用jQuery的AJAX功能)

提前致谢: - )

1 个答案:

答案 0 :(得分: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,然后在标题中考虑额外的长度。

将数据“unmangled”发送到服务器很难,除非您设法将其作为原始数据发送到POST消息中。 JSON编码或URL编码都需要转义特殊字符,尽管服务器应该能够轻松地重建原始UTF-8流。