Текст романа Л. Н. Толстого «Анна Каренина» (именно этот файл) был перекодирован в KOI8-R. Полученный файл несколько раз без ошибок перекодировали из одной случайно выбранной однобайтовой кодировки в другую, затем обрезали несколько начальных и конечных строк. Написать программу, которая восстанавливает текст фрагмента, если известно, что в нём встречается фамилия «Левин».
- Список кодировок: KOI8-R, CP1251, CP866, MACCYRILLIC, ISO-8859-5, CP855 (это всё варианты кириллицы)
Заранее сгенерированные таблицы (кроме списка всех символов из книги, если это потребуется) в этой программе использовать нельзя
Приведён не настоящий пример, а его шестнадцатеричный дамп
00000000 20 20 20 20 20 2d 20 bd c8 e1 20 c8 96 20 e4 9f | - ... .. ..| 00000010 20 20 e0 e4 9f 20 20 f2 e3 e5 e0 e1 96 e4 2c 20 | ... ......., | 00000020 20 c8 9f 20 20 93 e4 e1 20 20 c8 96 9f 90 91 96 | .. ... ......| 00000030 f6 96 83 96 c8 c8 9f f2 e4 e2 2c 20 20 c8 96 91 |.........., ...| 00000040 96 e6 f4 e4 96 83 e2 c8 9f f2 e4 e2 0a 90 9f 83 |................| 00000050 9f 81 96 c8 f4 f1 2c 20 2d 20 f2 83 fc e6 e1 83 |......, - ......| 00000060 20 ba 96 9c f4 c8 20 20 f4 20 20 85 9f e4 96 83 | ..... . .....| 00000070 20 20 90 9f f2 90 96 e6 c8 9f 20 20 9f e4 9f 94 | ........ ....| 00000080 e4 f4 3b 20 20 c8 9f 20 20 cb e4 96 90 e1 c8 20 |..; .. ...... | 00000090 20 af 91 e3 e1 f6 e2 f4 e0 0a 90 9f f6 9f dc 9c | ...............| 000000a0 e1 83 20 96 86 9f 2e 0a 20 20 20 20 20 2d 20 ba |.. ..... - .| 000000b0 96 9c f4 c8 21 20 2d 20 f2 e3 e1 dc e1 83 20 cb |....! - ...... .| 000000c0 e4 96 90 e1 c8 20 af 91 e3 e1 f6 e2 f4 e0 2c 20 |..... ........, | 000000d0 f4 20 20 ba 96 9c f4 c8 20 20 dc e1 c7 96 e4 f4 |. ..... ......| 000000e0 83 2c 20 20 e0 e4 9f 20 20 e5 20 20 c8 96 86 9f |., ... . ....| 000000f0 20 20 c8 e1 0a | ...|
Этот файл был получен тремя последовательными перекодировками:
- CP1251 → KOI8-R
- CP1251 → CP866
- CP855 → MACCYRILLIC
Соответственно, для восстановления надо перекодировать в обратном порядке.
- Она не то что скучает, но эта неопределенность, нерешительность положения, - слышал Левин и хотел поспешно отойти; но Степан Аркадьич подозвал его. - Левин! - сказал Степан Аркадьич, и Левин заметил, что у него на
Спойлер: