javascript - Konvertera array buffer till sträng


Jag sitter fast med att konvertera arraybuffer till sträng i TypeScript (Angular 4-projekt). All hjälp uppskattas mycket.

Kodens utdata visar sträng men med denna symbol - �

Krävd utdata:

PROGRAM "Digitala †rsredovisningen"

Får resultat :

PROGRAM "Digitala årsredovisningen"

  
ab2str(arraybuffer) {
        return String.fromCharCode.apply(null, new Uint8Array(arraybuffer));
      }

Svar #1

Du borde prova något liknande detta:

function uintToString(uintArray) {
    var encodedString = String.fromCharCode.apply(null, uintArray),
        decodedString = decodeURIComponent(escape(encodedString));
    return decodedString;
}

Kanske det här hjälper:

https://ourcodeworld.com/articles/read/164/how-to-convert-an-uint8array-to-string-in-javascript

Svar #2

Detta kommer att tillåta Unicode-tecken

ab2str(arraybuffer) {
    return String.fromCharCode.apply(null, new Uint16Array(arraybuffer));
  }