如果我有一个JavaScript字符串(可能包含Unicode字符),那么将它转换为UTF-8字节字符串的最佳方法是什么,然后可以使用该字符串生成以下有效负载以通过jQuery的AJAX发送到服务器?:
[包含以下字符串的大端(NBO)字节大小的4个字节] [UTF-8编码字符串]
其次,一旦创建了上面的字节字符串,如何在不受浏览器干扰/破坏的情况下将其发送到服务器? (最好使用jQuery的AJAX功能)
提前致谢: - )
答案 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流。