А что делать, если приходится учитывать этот старый скрипт, который никто не хочет переделывать под современные стандарты.
Работает. Хорошо и без ошибок работает много-много лет. И слава Богу.
Сообщение от Aetae
|
У тебя и fetch из коробки не способен кодировки различать.
|
В каком смысле и в какой ситуации?
рони,
Вот это вот
var trans = [];
for (var i = 0x410; i <= 0x44F; i++)
trans[i] = i - 0x350; // А-Яа-я
trans[0x401] = 0xA8; // Ё
trans[0x451] = 0xB8; // ё
Не совсем полная таблица.
Вот с чем я сталкивался в реале.
Когда считываешь файл c кодировкой cp1251
let f = new FileReader()
f.readAsText(blob, 'cp1251')
он некоторые символы типа '…︎' (код в cp1251 - x85 в unicode ему соответствуют и x85 и x2026) переводит в x2026. Такая же фигня происходит и с кавычками “︎ ”︎. У них в unicode несколько кодов, и берется не тот, который хотелось бы.
Поэтому при обратном преобразовании это приходится учитывать. Т.е. еще
trans[0x2026] = 0x85;
.....