一尘不染

如何将字符串转换为Bytearray

javascript

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

UnicodeEncoding encoding = new UnicodeEncoding();
byte[] bytes = encoding.GetBytes(AnyString);

由于UnicodeEncoding默认为具有Little-Endianness的UTF-16。

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


阅读 256

收藏
2020-05-01

共1个答案

一尘不染

在C#中运行

UnicodeEncoding encoding = new UnicodeEncoding();
byte[] bytes = encoding.GetBytes("Hello");

将创建一个数组

72,0,101,0,108,0,108,0,111,0

字节数组

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

字节数组

如果您希望在JavaScript中实现非常相似的行为,则可以执行此操作(v2是更强大的解决方案,而原始版本仅适用于0x00〜0xff)

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(', '));
2020-05-01