【发布时间】:2014-06-08 11:30:32
【问题描述】:
我正在开发一个通过 AJAX 与服务器通信的网页。服务器需要特定格式的二进制数据。目前,我的 JavaScript 代码可以生成服务器所期望的全部数据,除了一部分包含某个字符串参数的 UTF-8 表示。
简而言之,我需要一个 JavaScript 函数,它获取字符串 s 并将其 UTF-8 表示形式返回为 Uint8Array。
这在 Firefox 中非常简单,它有 TextEncoder 类:
function utf8(s) {
return new TextEncoder().encode(s);
}
不幸的是,Firefox 并不是唯一的浏览器 ;-) 有谁知道这种跨浏览器的方法吗?
我可以编写自己的编码器,但如果可能的话,我宁愿使用原生的。
注意:我非常欢迎非跨浏览器解决方案,只要它适用于 Google Chrome。
【问题讨论】:
-
既然您知道解决问题的方法是 UTF-8 编码器,我投票决定关闭它,因为它需要库推荐。谷歌可以在一秒钟内回答。
-
@Jon - 我不是在找图书馆。此外,谷歌没有回答我的问题(谷歌是我的第一次、第二次、……和第十次尝试)。
-
@Jon - 你能指点我一个特定的链接吗?我检查了一些,但没有一个提供我想要的。 (注意我想要 binary 中的 UTF-8 编码,即
Uint8Array,而不是文本。) -
This 是一个 UTF-8 编码器/解码器。如果您不希望结果在字符串中,而是在 Uint8Array 中,那么只需不要将编码结果放入带有
String.fromCharCode的字符串中,而是直接将字符代码写入数组中。
标签: javascript encoding utf-8 binary-data