Пишу, по большей части, про историю, свою жизнь и немного про программирование. Живу в Казани.

Перекодировка вручную

Меня удивляет, что многие программисты сейчас не умеют перекодировать строку в ошибочной кодировке вручную, даже если знают как она получилась.

С различными кодировками сейчас мало где можно столкнуться, тем не менее мне неясно в чём сложность задачи. Вроде даже ничего знать не надо.

Например, я вижу вот такую строку: Требуется авторизация. Она так выглядит, потому что она была в кодировке UTF-8, но код подумал, что она с CP1251 и перекодировал её в UTF-8. Предположим это всё известно, как вернуть всё в норму и посмотреть что там написано?

Почему-то мало кто справляется с задачей в такой формулировке. Вроде всё просто — строка перекодировалась из CP1251 в UTF-8, значит надо перекодировать по этой цепочке обратно:

iconv -f utf8 -t cp1251 <<<"Требуется авторизация"
Требуется авторизация
1 комментарий
daedmen 10 мес

По заголовку я подумал, что ты откроешь hex редактор и будешь в карандашем в блокноте подбирать цепочку кодировок которой побили строку наподобие тому как это делал Stirlitz

Евгений Степанищев 10 мес

Я когда-то писал перекодировщик, который тупо перекодирует во все варианты с максимальной вложенностью не более трёх и выдаёт последовательно всё полученное пользователю. Выручало иногда, если Штирлиц не справлялся)