首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将字符串转换为Bytearray

如何将字符串转换为Bytearray
EN

Stack Overflow用户
提问于 2011-06-03 18:56:25
回答 12查看 298.4K关注 0票数 105

如何使用JavaScript转换字节数组中的字符串。输出应该等同于下面的C#代码。

代码语言:javascript
复制
UnicodeEncoding encoding = new UnicodeEncoding();
byte[] bytes = encoding.GetBytes(AnyString);

因为UnicodeEncoding在默认情况下是具有低端字符顺序的UTF-16。

编辑:我需要将客户端生成的字节数组与使用上面的C#代码在服务器端生成的字节数组进行匹配。

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2011-06-03 19:52:06

在C#中运行以下代码

代码语言:javascript
复制
UnicodeEncoding encoding = new UnicodeEncoding();
byte[] bytes = encoding.GetBytes("Hello");

将创建一个数组,其中包含

代码语言:javascript
复制
72,0,101,0,108,0,108,0,111,0

对于代码大于255的字符,它将如下所示

如果你想在JavaScript中有一个非常类似的行为,你可以这样做(v2是一个更健壮的解决方案,而原始版本只能在0x00 ~0xff范围内工作)

代码语言:javascript
复制
var str = "Hello竜";
var bytes = []; // char codes
var bytesv2 = []; // char codes

for (var i = 0; i < str.length; ++i) {
  var code = str.charCodeAt(i);
  
  bytes = bytes.concat([code]);
  
  bytesv2 = bytesv2.concat([code & 0xff, code / 256 >>> 0]);
}

// 72, 101, 108, 108, 111, 31452
console.log('bytes', bytes.join(', '));

// 72, 0, 101, 0, 108, 0, 108, 0, 111, 0, 220, 122
console.log('bytesv2', bytesv2.join(', '));

票数 30
EN

Stack Overflow用户

发布于 2016-04-04 03:06:34

如果您正在寻找在node.js中工作的解决方案,您可以使用以下代码:

代码语言:javascript
复制
var myBuffer = [];
var str = 'Stack Overflow';
var buffer = new Buffer(str, 'utf16le');
for (var i = 0; i < buffer.length; i++) {
    myBuffer.push(buffer[i]);
}

console.log(myBuffer);
票数 36
EN

Stack Overflow用户

发布于 2018-02-13 16:45:19

更新2018 - 2018年最简单的方式应该是TextEncoder

代码语言:javascript
复制
let utf8Encode = new TextEncoder();
utf8Encode.encode("abc")
// Uint8Array [ 97, 98, 99 ]

警告-返回的元素是Uint8Arraynot all browsers support it

票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6226189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档