La mia app importa tutti i messaggi dalla cartella Notes di GMail. Io uso il modulo imap npm per quello.Converti buffer base64 -> utf8 encoding node.js
Utilizzando l'esempio dalla loro pagina github ricevo tutti i contenuti di un messaggio in un buffer:
stream.on('data', function(chunk) {
count += chunk.length;
buffer += chunk.toString('utf8');
});
Tuttavia, quello che ottiene sono frasi come
0KHQvdCw0YfQsNC70LAg0YHQvtC30LTQsNC10YLRgdGPINGA0LXRiNC10YLQutCwINC/0YDQvtGB 0YLRgNCw0L3RgdGC0LLQsCDQstC+0L7QsdGA0LDQttC10L3QuNGPLiZuYnNwOzxkaXY+PGJyPjwv ZGl2PjxkaXY+0JfQsNGC0LXQvCDQvdCwI
(conversione sbagliato dal russo)
Ho scoperto che questi sono i frammenti di testo codificati in base64 e per poterli leggere ho bisogno di convertirlo da base64 a utf8.
C'è anche talvolta un fastidioso = personaggio che appare dal nulla ...
letting them f= all on her shoulders
Sai come ho potuto sbarazzarsi di questi due problemi?
Grazie!
per convertire da Base64 a UTF8 è possibile utilizzare '(nuovo buffer (originale, 'base64')). toString ('utf8')'. Potresti fornire maggiori dettagli sul problema '='? – jabclab
@jabclab funziona, ma solo per i buffer che contengono solo russo. se c'è un buffer che ha solo testo inglese o inglese e russo, produce incomprensibili. Immagino di dover eseguire alcuni script prima della conversione per identificare la codifica, giusto? –
@jabclab riguardo al problema = - per qualche ragione a volte il segno = viene inserito a caso nel testo. non riesco a trovare dove appaia esattamente ... grazie! –