【问题标题】:JavaScript byte strings and jQuery AJAXJavaScript 字节字符串和 jQuery AJAX
【发布时间】:2012-01-04 14:39:51
【问题描述】:

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

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

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

提前致谢:-)

【问题讨论】:

  • 我不明白。什么是“UTF-8 字节字符串”?你为什么不直接发送一个 UTF-8 编码的字符串呢?标题的意义何在?为什么不使用 JSON(或其他标准)而不是发明自己的专有格式?

标签: javascript jquery utf-8


【解决方案1】:

获取四个字节的标头应该很容易:

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 流。

【讨论】:

    猜你喜欢
    • 2013-11-11
    • 2011-11-16
    • 2015-06-08
    • 1970-01-01
    • 2016-03-28
    • 2018-05-01
    • 1970-01-01
    • 2021-03-30
    • 2014-07-12
    相关资源
    最近更新 更多