我正在从WebSocket连接获取arrayBuffer,我可以获得字节数组的范围在c#中创建的Guid。
如何在javascript中将此guid字节转换为字符串
Guid="FEF38A56-67A9-46DF-B7D8-C52191CD70F4"
字节=[861138224325416910322370183216197331145205112244]
谢谢。
除了JohanShogun的答案之外,还有一个简单的脚本可以在字节数组上使用map函数。但是,根据本条的备注部分:http://msdn.microsoft.com/pl-pl/library/system.guid.tobytearray.aspx,前四个字节应该反转,后面两个和后面两个也应该反转。所以…这里有一个正确的解决方案(不要忘记结果值15的零填充应该是"0F"而不是"F"):
var x = [168, 199, 56, 91, 146, 52, 231, 64, 175, 133, 167, 15, 146, 60, 83, 107];
// reverse first four bytes, and join with following two reversed, joined with following two reversed, joined with rest of the bytes
x = x.slice(0, 4).reverse().concat(x.slice(4,6).reverse()).concat(x.slice(6,8).reverse()).concat(x.slice(8))
var guid = x.map(function(item) {
// return hex value with "0" padding
return ('00'+item.toString(16).toUpperCase()).substr(-2,2);
})
// guid variable now holds string: 5B38C7A8349240E7AF85A70F923C536B
此处的测试示例:http://jsbin.com/ogegut/4/edit
如果您使用这些作为数字(http://www.w3schools.com/jsref/jsref_obj_number.asp)您可以简单地执行.toString(16)来获得十六进制的值。