java string.getBytes ("UTF-8") 等效的 javascript

标签 java javascript utf-8 byte utf-16

我在 java 中有这个字符串:

"test.message"

byte[] bytes = plaintext.getBytes("UTF-8");
//result: [116, 101, 115, 116, 46, 109, 101, 115, 115, 97, 103, 101]

如果我在 javascript 中做同样的事情:

    stringToByteArray: function (str) {         
        str = unescape(encodeURIComponent(str));

        var bytes = new Array(str.length);
        for (var i = 0; i < str.length; ++i)
            bytes[i] = str.charCodeAt(i);

        return bytes;
    },

我得到:

 [7,163,140,72,178,72,244,241,149,43,67,124]

我的印象是 unescape(encodeURIComponent()) 会正确地将字符串转换为 UTF-8。不是这样吗?

引用:

http://ecmanaut.blogspot.be/2006/07/encoding-decoding-utf8-in-javascript.html

最佳答案

您可以使用 TextEncoder,它是 Encoding Living Standard 的一部分.根据Encoding API来自 Chromium 仪表板的条目,它在 Firefox 中发布,并将在 Chrome 38 中发布。还有一个 text-encoding polyfill 可用。

下面的 JavaScript 代码示例返回一个 Uint8Array,其中填充了您期望的值。

var s = "test.message";
var encoder = new TextEncoder();
encoder.encode(s);
// [116, 101, 115, 116, 46, 109, 101, 115, 115, 97, 103, 101]

关于java string.getBytes ("UTF-8") 等效的 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22861828/

相关文章:

javascript - 更改 Zombie.js 的版本

python - Django 1.4 - django.db.models.FileField.save(filename, file, save=True) 产生非 ascii 文件名错误

mysql - mysql如何区分大写和小写

java - 如何在Horton Sandbox中获取Sqoop Server运行的URL和端口

java - 将ArrayList的内容放入PriorityQueue Java问题

java - 在线在 Sharepoint 中上传文件

javascript - 从表中添加/删除行

java - 删除 ArrayList Java 中的重复元素

javascript - jquery 检查数字是否在列表中

python - django-simple-rest 中的非拉丁符号