4

У меня есть текстовый документ, который должен быть написан на русском языке, но вместо этого он выглядит как:

Óñòàíîâêà:
1)Çàïóñêàåì QuidamStudioSetup3.15.exe
2)Ïðè çàïðîñå ñåðèéíîãî íîìåðà ââîäèì

Как я могу преобразовать это в русские символы Юникода, которые читаются?

2 ответа2

9

Это не "ASCII" и не "ASCII русский".

До того, как Unicode получил широкое распространение, большинство компьютерных систем использовали кодировки символов ISO-8859, которых было 16, каждая для своего региона (центральноевропейская, кириллическая, греческая ...). У Windows были свои «кодовые страницы», очень похожие, но с дополнительными символами в неиспользуемых диапазонах. Все эти кодировки символов 8-битные и отличаются только во второй половине (128-255).

Проблема с этими кодировками заключается в том, что для программы практически невозможно определить, какая кодировка использовалась для сохранения файла, если только он не был указан явно (например, на страницах HTML; однако в простых текстовых файлах нет таких тегов метаданных). Прочитайте статью Wikipedia о Mojibake для более подробного описания.

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

Есть несколько способов конвертировать такой текст в Unicode:

  • Используйте онлайн-инструменты, такие как этот или этот.

  • Используйте свой веб-браузер:

    1. Перетащите файл .txt в браузер.

    2. В меню « Просмотр» → «Кодировка символов» (или Firefox → «Веб-разработчик» → «Кодировка символов», или « Ключ» → «Инструменты» → «Кодировка») выберите правильную исходную кодировку: «Кириллица (Windows-1251)» в вашем случае.

  • Используйте текстовый редактор Notepad2 :

    1. Откройте файл.

    2. В меню «Файл» → «Кодировка» → «Перекодировать» выберите правильную исходную кодировку.

  • Используйте GNU iconv с двоичными файлами Windows из GnuWin32 или Gettext для Win32.

    iconv -f cp1251 -t utf-8 < myfile.txt > myfile.fixed.txt

    Блокнот Windows будет правильно читать текст в кодировке UTF-8 и UTF-16.

3

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

Похоже, это Windows-1251 по случайной веб-странице, найденной Google.

Установка:
1) Запускаем QuidamStudioSetup3.15.exe
2) При запросе серийного номера вводим

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

монтаж:
1) Запустите QuidamStudioSetup3.15.exe
2) При появлении запроса введите серийный номер

Так ...

iconv -f 1252 -t UTF-8 document.txt

Следует преобразовать ваш тестовый файл во что-то, что можно открыть и прочитать в блокноте

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .