TXT-файлы: как переключиться со странных символов обратно на нормальные?

440
Alex

Итак, у меня на флешке есть текстовый файл, сгенерированный кириллицей (моя собственная работа, собственный перьевой накопитель), несколько лет. Теперь мне нужно было его открыть, только чтобы увидеть этот беспорядок .

Интересно, почему это происходит и как я могу восстановить его до нормального состояния? Я пытался сохранить его в кодировке Unicode и UTF-8, даже в некотором формате MS-DOS (опция из Wordpad), но это не имеет значения вообще.

0
Похоже, ваш документ был сохранен в кодировке KOI-8; вам нужно будет найти способ перевести его из этой кодировки в Unicode. Jeff Zeitlin 5 лет назад 0
Вы можете найти https://2cyr.com/decode/ полезным. Jeff Zeitlin 5 лет назад 1
Я надеюсь, что у вас есть копия исходного файла, потому что сохранение «грязного» файла с использованием другой кодировки только усугубляет проблему. Johan Myréen 5 лет назад 3
Откройте его в MS Word Rus с автоматическим определением кодировки или выбором кодировки вручную (KOI-8r, CP866 и т. Д. - попробуйте до правильного предварительного просмотра), а затем повторно сохраните кодировку, которая вам нужна (не сохраняйте заново!). Или используйте любой онлайн-перекодировщик и определите оригинальную кодировку текста. Akina 5 лет назад 0
@Johan Myréen Конечно, я понял это и сохранил их как новые файлы Alex 5 лет назад 0
@Akina "Open it in MS Word Rus with manual encoding selection" Thanks, this worked. Alex 5 лет назад 0
@Akina "re-save in encoding you need (do not save over!)" Though I need to mention for the benefit of others with the same (quite common) issue who may stumble upon this thread, this does not work if you re-save as another txt file, even though with the proper encoding - there was again that mess of characters. Only saving as a Word or rtf file helps. Alex 5 лет назад 0
@Jeff Zeitlin Thank you too, good that such thing exists, even though I did not need to use it this time, it may be helpful in future :) Alex 5 лет назад 0

2 ответа на вопрос

1
Austin Hemmelgarn

То, что вы видите, называется моджибаке . Короче говоря, приложение, с которым вы открываете файл, использует неправильную кодировку, чтобы попытаться прочитать файл. Стандартным решением является использование инструмента транскодирования, как онлайн, так и в автономном режиме (хотя я не знаю ни одного бесплатного для Windows, который работает в автономном режиме), или откройте документ в приложении, которое позволяет вам установить кодировку и сохранить его через него по желанию. кодирование.

В качестве несколько хакерской альтернативы: если вы можете сохранить файл без изменения кодировки, вы можете изменить расширение на .eml, отформатировать его как сообщение электронной почты, убедиться, что в Content-Typeзаголовке указана правильная кодировка, а затем открыть полученный файл в хорошем сообщении электронной почты. клиент (почти все, кроме Outlook или Windows Mail) и скопируйте текст оттуда в текстовый редактор и сохраните его.

Для дальнейшего использования общепринятым способом избежать этого является сохранение файлов в формате UTF-8 или UTF-16 (обычно предпочтительнее UTF-8, так как он лучше поддерживается большинством платформ, отличных от Windows, чем UTF-16).

В частности, ваш файл действительно выглядит закодированным с использованием KOI-8 (определяется на основе утверждения, что текст является кириллицей, и видимое распределение фактических символов), при этом приложение явно интерпретирует его как ISO-8859-1 или кодовую страницу Windows. 1252 (определяется просто на основе того, что отображается, плюс тот факт, что это стандартные резервные кодировки для многих устройств).

Многие текстовые редакторы (например, Notepad2) действуют как инструменты транскодирования: вы можете заставить их открыть файл, используя любую кодировку, которую вы указали, а затем сохранить как UTF-x. grawity 5 лет назад 0
@grawity Однако, Блокнот и Wordpad не поддерживают это, поэтому, если у вас нет стороннего текстового редактора в Windows, вам не повезло. Austin Hemmelgarn 5 лет назад 0
0
RProgram

Вы можете попробовать редактор CudaText (или SynWrite), бесплатно.

  • открыть этот текстовый файл
  • щелкните поле строки состояния с именем кодировки (например, ANSI), «Обновить как»
  • найти кодировку, которая делает текст ОК
  • когда найдена кодировка, щелкните поле строки состояния с именем кодировки «Преобразовать в»
  • использовать UTF8
  • сохранить файл с UTF8