如何在javascript中将字节数组转换为字符串

rez*_*eza 1 javascript arrays

我收到来自 SOAP 服务器的响应,它是一个字节数组,大小固定。

例如,我得到 { rsp: { errorNumber: '1', errorMessage: { item: [Object] } } }

[ '73',
  '110',
  '118',
  '97',
  '108',
  '105',
  '100',
  '32',
  '112',
  '97',
  '115',
  '115',
  '119',
  '111',
  '114',
  '100',
  '0']
Run Code Online (Sandbox Code Playgroud)

如何将该数组转换为字符串 javascript?

Roc*_*mat 6

数组中的每个“字节”实际上是一个字符的 ASCII 码。 String.fromCharCode将每个代码转换为一个字符。

它实际上支持无限数量的参数,所以你可以这样做:

String.fromCharCode.apply(String, arr);
Run Code Online (Sandbox Code Playgroud)

在您的阵列上运行时,您会得到:"Invalid password".

正如@Ted Hopp指出的那样,0最后将向字符串添加一个空字符。要删除它,只是做:.replace(/\0/g,'')

String.fromCharCode.apply(String, arr).replace(/\0/g,'');
Run Code Online (Sandbox Code Playgroud)