Мое приложение импортирует все сообщения из папки Notes GMail. Для этого я использую модуль imap npm.Конвертировать буфер base64 -> utf8 encoding node.js
Используя пример со своей страницы GitHub я получаю все содержимое сообщения в буфер:
stream.on('data', function(chunk) {
count += chunk.length;
buffer += chunk.toString('utf8');
});
Однако то, что я получаю предложения вроде
0KHQvdCw0YfQsNC70LAg0YHQvtC30LTQsNC10YLRgdGPINGA0LXRiNC10YLQutCwINC/0YDQvtGB 0YLRgNCw0L3RgdGC0LLQsCDQstC+0L7QsdGA0LDQttC10L3QuNGPLiZuYnNwOzxkaXY+PGJyPjwv ZGl2PjxkaXY+0JfQsNGC0LXQvCDQvdCwI
(неправильное преобразование с русского)
Я выяснил, что это фрагменты текста, закодированные в base64, и для их чтения мне нужно преобразовать его из base64 в utf8.
Существует также иногда раздражает = символ, который появляется из ниоткуда ...
letting them f= all on her shoulders
Вы знаете, как я могу избавиться от этих двух проблем?
Спасибо!
для того, чтобы конвертировать из base64 в utf8 вы можете использовать '(новый буфер (оригинал, 'base64')). ToString ('utf8')'. Не могли бы вы предоставить более подробную информацию о проблеме '='? – jabclab
@jabclab это работает, но только для буферов, содержащих только русский. если есть буфер, который имеет только английский текст, английский или русский, он производит тарабарщину. Думаю, мне нужно запустить какой-то скрипт перед преобразованием, чтобы определить кодировку, не так ли? –
@jabclab относительно проблемы = почему-то иногда знак = просто вставляется случайно в текст. я не могу найти, где именно оно появляется ... спасибо! –