2017-05-12 2 views
0

Ich habe ein Problem. Ich brauche Kommunikation Javascript zu C Knoten.Konvertierung UTF-8 UInt8Array zu UTF-8 String

Das Protokoll verwendet einen String mit 0xAAAA-Header.

in JS Ich habe ein Uint8Array mit {\ xAA, \ xAA} Mein Problem ist, dass ich ein Uint8Array in String UTF-8 konvertieren muss.

Wie aus Uint8Array in UTF-8 in UTF-8-String)

+0

Wenn Ihr Browser dies unterstützt => http://Stackoverflow.com/a/41180394/7131047 – Fefux

+0

Verwenden Sie Node.js oder läuft das Javascript im Browser? –

Antwort

0

haben einen Versuch konvertieren:

function str2arr(str) { 
 
    var utf8 = unescape(encodeURIComponent(str)); 
 
    return new Uint8Array(utf8.split('').map(function (item) { 
 
    return item.charCodeAt(); 
 
    })); 
 
} 
 

 
function arr2str(arr) { 
 
    // or [].slice.apply(arr) 
 
    var utf8 = Array.from(arr).map(function (item) { 
 
    return String.fromCharCode(item); 
 
    }).join(''); 
 
    
 
    return decodeURIComponent(escape(utf8)); 
 
} 
 

 
var arr = str2arr('汉字'); 
 
document.querySelector('div').innerHTML = arr; 
 
document.querySelector('div:nth-of-type(2)').innerHTML = arr2str(arr);
<div></div> 
 
<div></div>

[0xAA, 0xAA] ist eine ungültige utf8-Array.

Als Referenz: https://github.com/zswang/jpacks Binärdaten und Auspacken.