Показать сообщение отдельно
  #5 (permalink)  
Старый 20.12.2020, 12:37
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,775

А что делать, если приходится учитывать этот старый скрипт, который никто не хочет переделывать под современные стандарты.
Работает. Хорошо и без ошибок работает много-много лет. И слава Богу.

Сообщение от 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;
.....

Последний раз редактировалось voraa, 20.12.2020 в 12:54.
Ответить с цитированием