为了账号安全,请及时绑定邮箱和手机立即绑定

如何将字符串转换为Bytearray

如何将字符串转换为Bytearray

噜噜哒 2019-11-15 13:02:42
如何使用JavaScript转换字节数组中的字符串。输出应等效于以下C#代码。UnicodeEncoding encoding = new UnicodeEncoding();byte[] bytes = encoding.GetBytes(AnyString);由于UnicodeEncoding默认为具有Little-Endianness的UTF-16。编辑:我需要使用上面的C#代码将字节数组生成的客户端与服务器端生成的字节数组进行匹配。
查看完整描述

3 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

在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(', '));


查看完整回答
反对 回复 2019-11-15
?
冉冉说

TA贡献1877条经验 获得超1个赞

如果您正在寻找可以在node.js中使用的解决方案,则可以使用以下方法:


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);


查看完整回答
反对 回复 2019-11-15
  • 3 回答
  • 0 关注
  • 321 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信