如何将字符串转换为Bytearray

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


UnicodeEncoding encoding = new UnicodeEncoding();

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

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


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


噜噜哒
浏览 391回答 3
3回答

杨__羊羊

在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 codesvar bytesv2 = []; // char codesfor (var i = 0; i < str.length; ++i) {&nbsp; var code = str.charCodeAt(i);&nbsp;&nbsp;&nbsp; bytes = bytes.concat([code]);&nbsp;&nbsp;&nbsp; bytesv2 = bytesv2.concat([code & 0xff, code / 256 >>> 0]);}// 72, 101, 108, 108, 111, 31452console.log('bytes', bytes.join(', '));// 72, 0, 101, 0, 108, 0, 108, 0, 111, 0, 220, 122console.log('bytesv2', bytesv2.join(', '));

冉冉说

如果您正在寻找可以在node.js中使用的解决方案,则可以使用以下方法:var myBuffer = [];var str = 'Stack Overflow';var buffer = new Buffer(str, 'utf16le');for (var i = 0; i < buffer.length; i++) {&nbsp; &nbsp; myBuffer.push(buffer[i]);}console.log(myBuffer);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript