我从SOAP服务器获得响应,它是一个固定大小的字节数组。
例如,我得到{ rsp: { errorNumber: '1', errorMessage: { item: [Object] } } }
[ '73',
'110',
'118',
'97',
'108',
'105',
'100',
'32',
'112',
'97',
'115',
'115',
'119',
'111',
'114',
'100',
'0']
如何将该数组转换为javascript的字符串?
答案 0 :(得分:3)
数组中的每个“字节”实际上是字符的ASCII代码。 String.fromCharCode
会将每个代码转换为字符。
它实际上支持无数个参数,所以你可以这样做:
String.fromCharCode.apply(String, arr);
在您的阵列上运行时,您会获得:"Invalid password"
。
正如@Ted Hopp指出的那样,最后的0
将为字符串添加一个空字符。要删除它,只需执行:.replace(/\0/g,'')
。
String.fromCharCode.apply(String, arr).replace(/\0/g,'');
答案 1 :(得分:2)
这是你想要的,String.fromCharCode
功能:
var foo = [
'73',
'110',
'118',
'97',
'108',
'105',
'100',
'32',
'112',
'97',
'115',
'115',
'119',
'111',
'114',
'100',
'0'];
var str = '';
for (var i=0; i<foo.length; ++i) {
str+= String.fromCharCode(foo[i]);
}
console.log(str);
或更好:
var str = String.fromCharCode.apply(null, foo);
答案 2 :(得分:2)
这是使用地图的另一种选择:
var str = arr.map(String.fromCharCode).join("");