История изменений
Исправление proud_anon, (текущая версия) :
Кодировка файла cp1251, можно создать файл в cp1251, и скопировать строку из форума
Ты хотел сказать, в ISO-8859-5?
Я так и сделал. Получилось следующее:
$ hexdump -C broken_file.txt
00000000 c0 3f c0 a1 c0 3f c0 a1 c1 3f c0 a5 c1 3f c0 3f |.?...?...?...?.?|
00000010 20 c1 a3 c1 a3 c0 3f c1 a3 c0 a6 c0 a1 0a | .....?.......|
iconv --from-code=iso-8859-5 --to-code=cp1251 broken_file.txt > recoded.txt
$ cat recoded.txt
�?Ш�?Ш�?н�?�? сс�?свШ
$ hexdump -C recoded.txt
00000000 d0 3f d0 a8 d0 3f d0 a8 d1 3f d0 bd d1 3f d0 3f |.?...?...?...?.?|
00000010 20 d1 81 d1 81 d0 3f d1 81 d0 b2 d0 a8 0a | .....?.......|
0000001e
?Ш?Ш?н?? сс?свШ
В целом преобразование CP1251 → ISO-8859-5 необратимо, потому что некоторые символы, которые есть в Windows-1251, отсутствуют в ISO-8859-5. Мы видим, что соответствующие байты уже убиты (превращены в код 3F).
Так что тут только в том вопрос, сколько информации ещё можно восстановить из этого файла.
Но, может быть, кто-то знает какой-то способ.
Update. Можно, конечно, написать скрипт, чтобы подбирать по частотам и проч. Мы знаем начало кодов (D1 или D0) — это сокращает число вариантов. Но это уже если тебе надо во что бы то ни стало восстановить файл и нет никакой возможности получить оригинал.
Исправление proud_anon, :
Кодировка файла cp1251, можно создать файл в cp1251, и скопировать строку из форума
Ты хотел сказать, в ISO-8859-5?
Я так и сделал. Получилось следующее:
$ hexdump -C broken_file.txt
00000000 c0 3f c0 a1 c0 3f c0 a1 c1 3f c0 a5 c1 3f c0 3f |.?...?...?...?.?|
00000010 20 c1 a3 c1 a3 c0 3f c1 a3 c0 a6 c0 a1 0a | .....?.......|
iconv --from-code=iso-8859-5 --to-code=cp1251 broken_file.txt > recoded.txt
$ cat recoded.txt
�?Ш�?Ш�?н�?�? сс�?свШ
$ hexdump -C recoded.txt
00000000 d0 3f d0 a8 d0 3f d0 a8 d1 3f d0 bd d1 3f d0 3f |.?...?...?...?.?|
00000010 20 d1 81 d1 81 d0 3f d1 81 d0 b2 d0 a8 0a | .....?.......|
0000001e
?Ш?Ш?н?? сс?свШ
В целом преобразование CP1251 → ISO-8859-5 необратимо, потому что некоторые символы, которые есть в Windows-1251, отсутствуют в ISO-8859-5. Мы видим, что соответствующие байты уже убиты (превращены в код 3F).
Так что тут только в том вопрос, сколько информации ещё можно восстановить из этого файла.
Но, может быть, кто-то знает какой-то способ.
Исходная версия proud_anon, :
Кодировка файла cp1251, можно создать файл в cp1251, и скопировать строку из форума
Ты хотел сказать, в ISO-8859-5?
Я так и сделал. Получилось следующее:
$ hexdump -C broken_file.txt
00000000 c0 3f c0 a1 c0 3f c0 a1 c1 3f c0 a5 c1 3f c0 3f |.?...?...?...?.?|
00000010 20 c1 a3 c1 a3 c0 3f c1 a3 c0 a6 c0 a1 0a | .....?.......|
iconv --from-code=iso-8859-5 --to-code=cp1251 broken_file.txt > recoded.txt
$ cat recoded.txt
�?Ш�?Ш�?н�?�? сс�?свШ
$ hexdump -C recoded.txt
00000000 d0 3f d0 a8 d0 3f d0 a8 d1 3f d0 bd d1 3f d0 3f |.?...?...?...?.?|
00000010 20 d1 81 d1 81 d0 3f d1 81 d0 b2 d0 a8 0a | .....?.......|
0000001e
?Ш?Ш?н?? сс?свШ
В целом, преобразование CP1251 → ISO-8859-5 необратимо, потому что некоторые символы, которые есть в Windows-1251, отсутствуют в ISO-8859-5. Мы видим, что соответствующие байты уже убиты (превращены в код 3F).
Так что тут только в том вопрос, сколько информации ещё можно восстановить из этого файла.
Но, может быть, кто-то знает какой-то способ.