Я пишу API, который создает текстовые файлы.Он используется устаревшим программным обеспечением, для которого требуются файлы с кодировкой Windows 1255 .Я создаю содержимое файла из старой доброй строки JavaScript.
Это соответствующие части кода, которые у меня есть:
var iconv = require('iconv-lite');
const str = 'Hello world, שלום עולם';
const encoded_str = iconv.encode(str, 'win1255', {addBOM: true});
response.status(200).send('data:text/plain;base64,' + Buffer.from(str, 'binary').toString('base64'));
Он успешно отправляет текстовый файл,Содержимое ASCII сохраняется и хорошо отображается, когда я открываю его в блокноте, но любые не ASCII (думаю: иврит) символы искажены.
У меня есть ощущение, что это как-то связано с преобразованием base64,(файл позже открывается с использованием тега HTML <a href="...">
)