Как найти кодировку файла

Обновлено: 21.11.2024

Как правило, вы можете обмениваться текстовыми файлами, не беспокоясь о том, как хранится текст. Однако если вы делитесь текстовыми файлами с людьми, которые работают на других языках, загружаете текстовые файлы через Интернет или делитесь текстовыми файлами с другими компьютерными системами, вам может потребоваться выбрать стандарт кодирования при открытии или сохранении файла.

Когда вы или кто-то другой открывает текстовый файл в Microsoft Word или в другой программе — возможно, на компьютере с системным программным обеспечением на языке, отличном от языка, который использовался для создания файла — стандарт кодирования помогает в этом. программа определяет, как представить текст, чтобы он был удобочитаемым.

Что вы хотите сделать?

Знакомство с кодировкой текста

То, что кажется вам текстом на экране, на самом деле сохраняется в виде числовых значений в текстовом файле. Ваш компьютер переводит числовые значения в видимые символы. Это достигается с помощью стандарта кодирования.

Стандарт кодирования – это схема нумерации, при которой каждому текстовому символу в наборе символов присваивается числовое значение. Набор символов может включать буквы алфавита, цифры и другие символы. Разные языки обычно состоят из разных наборов символов, поэтому существует множество различных стандартов кодирования для представления наборов символов, используемых в разных языках.

Разные стандарты кодирования для разных алфавитов

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

Однако, если вы откроете тот же файл на компьютере, использующем другую кодировку, компьютер отобразит любой символ, соответствующий числовому значению 201 в стандарте кодировки, который компьютер использует по умолчанию. Например, если на вашем компьютере используется западноевропейский (Windows) стандарт кодировки, символ в исходном кириллическом файле будет отображаться как É, а не Й, поскольку в западноевропейской (Windows) кодировке значение 201 отображается на É.< /p>

Юникод: единый стандарт кодирования для многих алфавитов

Чтобы избежать проблем с кодированием и декодированием текстовых файлов, вы можете сохранять файлы в кодировке Unicode. Юникод поддерживает большинство наборов символов для всех языков, которые сегодня широко используются пользователями компьютеров.

Поскольку Word основан на Unicode, Word автоматически сохраняет файлы, закодированные как Unicode. Вы можете открывать и читать файлы в кодировке Unicode на своем англоязычном компьютере независимо от языка текста. Аналогичным образом, когда вы используете англоязычную систему для сохранения файлов в кодировке Unicode, файл может содержать символы, не встречающиеся в западноевропейских алфавитах, например символы греческого, кириллического, арабского или японского языков.

Выберите стандарт кодирования при открытии файла

Если при открытии файла текст отображается искаженным, в виде вопросительных знаков или прямоугольников, возможно, Word не точно определил стандарт кодирования текста в файле. Вы можете указать стандарт кодирования, который можно использовать для отображения (декодирования) текста.

Перейдите на вкладку "Файл".

Нажмите "Параметры".

Нажмите "Дополнительно".

Прокрутите до раздела "Общие" и установите флажок "Подтверждать преобразование формата файла при открытии".

Примечание. Если этот флажок установлен, Word отображает диалоговое окно «Преобразовать файл» каждый раз, когда вы открываете файл в формате, отличном от формата Word (форматы Word включают .doc, .dot, .docx, .docm, . файлы dotx или .dotm). Если вы часто работаете с такими файлами, но редко хотите выбирать стандарт кодирования, не забудьте отключить этот параметр, чтобы это диалоговое окно не открывалось без необходимости.

Закройте и снова откройте файл.

В диалоговом окне "Преобразовать файл" выберите "Закодированный текст".

В диалоговом окне "Преобразование файла" выберите "Другая кодировка", а затем выберите нужный стандарт кодировки из списка.

Вы можете предварительно просмотреть текст в области предварительного просмотра, чтобы проверить, читается ли весь текст в выбранном стандарте кодирования.

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

Чтобы установить дополнительные шрифты, выполните следующие действия:

В Microsoft Windows нажмите кнопку "Пуск" и выберите "Панель управления".

Выполните одно из следующих действий:

В Windows 7

На панели управления нажмите "Удалить программу".

В списке программ выберите Microsoft Office или Microsoft Word, в зависимости от того, установили ли вы Word как часть Office или как отдельную программу, а затем нажмите Изменить.

В Windows Vista

На панели управления нажмите "Удалить программу".

В списке программ выберите Microsoft Office или Microsoft Word, в зависимости от того, установили ли вы Word как часть Office или как отдельную программу, а затем нажмите Изменить.

В Microsoft Windows XP

На панели управления нажмите "Установка и удаление программ".

В поле Установленные программы щелкните список Microsoft Office или Microsoft Word, в зависимости от того, установили ли вы Word как часть Office или как отдельную программу, а затем нажмите Изменить.

В разделе "Изменить установку Microsoft Office" нажмите "Добавить или удалить компоненты", а затем нажмите "Продолжить".

В разделе «Параметры установки» разверните «Общие функции Office», а затем разверните «Международная поддержка».

Выберите нужный набор шрифтов, нажмите стрелку рядом с выбором и выберите «Запустить с моего компьютера».

Совет. Когда вы открываете закодированный текстовый файл, Word применяет шрифты, указанные в диалоговом окне "Параметры веб-сайта". (Чтобы открыть диалоговое окно «Параметры веб-страницы», нажмите кнопку Microsoft Office, щелкните «Параметры Word», а затем нажмите «Дополнительно». В разделе «Общие» нажмите «Параметры веб-сайта».) Вы можете выбрать параметры на вкладке «Шрифты» в диалоговом окне «Параметры веб-сайта», чтобы настроить шрифт для каждого набора символов.

Выберите стандарт кодирования при сохранении файла

Если вы не выберете стандарт кодировки при сохранении файла, Word кодирует файл как Unicode. Обычно можно использовать кодировку Unicode по умолчанию, поскольку она поддерживает большинство символов большинства языков.

Если ваш документ будет открыт в программе, не поддерживающей Unicode, вы можете выбрать стандарт кодирования, соответствующий стандарту целевой программы. Например, Unicode позволяет создать документ на традиционном китайском языке в англоязычной системе. Однако, если документ будет открыт в программе на традиционном китайском языке, которая не поддерживает Unicode, вы можете сохранить документ в кодировке традиционного китайского языка (Big5). Когда документ открывается в программе на традиционном китайском языке, весь текст отображается правильно.

Примечание. Поскольку Unicode является наиболее полным стандартом, сохранение текста в любой другой кодировке может привести к тому, что некоторые символы больше не будут отображаться. Например, документ, закодированный в Unicode, может содержать текст на иврите и кириллице. Если этот документ сохранен с кодировкой кириллицы (Windows), текст на иврите больше не будет отображаться, а если документ сохранен с кодировкой на иврите (Windows), текст на кириллице больше не будет отображаться.

Если вы выберете стандарт кодирования, который не поддерживает символы, которые вы использовали в файле, Word помечает красным цветом те символы, которые не может быть сохранен. Вы можете предварительно просмотреть текст в выбранном вами стандарте кодирования перед сохранением файла.

Текст, отформатированный шрифтом Symbol или кодами полей, удаляется из файла при сохранении файла как закодированного текста.

Выберите стандарт кодирования

Перейдите на вкладку "Файл".

Нажмите "Сохранить как".

Если вы хотите сохранить файл в другой папке, найдите и откройте ее.

В поле Имя файла введите новое имя файла.

В поле "Тип файла" выберите "Обычный текст".

Нажмите "Сохранить".

Если появится диалоговое окно средства проверки совместимости Microsoft Office Word, нажмите "Продолжить".

В диалоговом окне "Преобразование файла" выберите вариант стандарта кодирования, который вы хотите использовать:

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

Чтобы использовать стандарт кодирования MS-DOS, щелкните MS-DOS.

Чтобы выбрать конкретный стандарт кодирования, нажмите «Другая кодировка», а затем выберите нужный стандарт кодирования из списка. Вы можете предварительно просмотреть текст в области предварительного просмотра, чтобы проверить, читается ли весь текст в выбранном стандарте кодирования.

Примечание. Размер диалогового окна "Преобразование файла" можно изменить, чтобы можно было просмотреть больше документов.

Если вы получили сообщение "Текст, выделенный красным цветом, не будет корректно сохранен в выбранной кодировке", попробуйте выбрать другую кодировку или установите флажок "Разрешить замену символов".

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

Если в выбранной вами кодировке нет эквивалентного символа для символа, отмеченного красным, символ, отмеченный красным, будет сохранен как символ вне контекста, например вопросительный знак.

Если документ будет открыт в программе, которая не переносит текст с одной строки на другую, вы можете включить в документ жесткие разрывы строк, установив флажок Вставить разрывы строк, а затем указав, хотите ли вы, чтобы строки разрывы должны быть обозначены символом возврата каретки (CR), перевода строки (LF) или и тем, и другим в поле Конец строки с помощью поля.

Поиск стандартов кодирования, доступных в Word

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

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

У меня возникли проблемы с файлами субтитров в видео omxplayer. Чтобы решить эту проблему, мне пришлось преобразовать кодировку Windows-1250 в UTF-8. Мой вопрос: как я могу увидеть для какого-то конкретного файла, какая кодировка используется?

Да. Я уже менял кодировку (в 1 файле). Но у меня их много, и я хотел сделать небольшой скрипт, который бы контролировал их все, а затем при необходимости скрывал. Но я полагаю, что я могу просто преобразовать их все. Не будет никакого вреда, если некоторые из них уже будут в UTF-8. Верно?

3 ответа 3

Вы не можете автоматически определить, был ли файл изначально записан в кодировке X.

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

Проблема в том, что многие кодеки похожи и имеют одинаковые «допустимые шаблоны байтов», просто интерпретируя их как разные символы. Например, ä в одной кодировке может соответствовать é в другой или ø в третьей. Компьютер на самом деле не может определить, какой способ интерпретации байта приводит к правильно читаемому тексту (если, возможно, вы не добавите словарь для всех видов языков и не разрешите ему выполнять проверку орфографии). Вы также должны знать, что некоторые наборы символов на самом деле являются подмножествами других, например, кодировка ASCII является частью наиболее часто используемых кодеков, таких как некоторые из семейства ANSI или UTF-8. Это означает, например, что текст, сохраненный как UTF-8, который содержит только простые латинские символы, будет идентичен тому же файлу, сохраненному как ASCII.

Однако давайте вернемся от объяснения того, что вы не можете сделать, к тому, что вы действительно можете сделать:

Для базовой проверки текстовых файлов ASCII/не-ASCII (обычно UTF-8) вы можете использовать команду file. Однако он не знает многих кодеков и проверяет только первые несколько килобайт файла, предполагая, что остальные не будут содержать никаких новых символов. С другой стороны, он также распознает другие распространенные типы файлов, такие как различные скрипты, документы HTML/XML и многие форматы двоичных данных (хотя все это неинтересно для сравнения текстовых файлов), и может печатать дополнительную информацию о том, есть ли очень длинные строки или что-то еще. тип последовательности новой строки (например, UNIX: LF, Windows: CR+LF).

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

Вы можете определить кодировку файлов и набор символов через командную строку в Mac OS (и Linux) с помощью команды «файл», которая помогает получить общую и конкретную информацию о типе файла.

Возможно, этот совет не будет актуален для многих пользователей, но если вам нужно работать с определенным набором символов для чего-то или вам нужно знать, какой тип файла, кодировка или набор символов введенного элемента через командную строку, то это поможет.

Команда file работает в Mac OS и Mac oS X, а также в Linux и многих других вариантах Unix, что делает этот прием полезным для скриптов и других подобных целей.

Определение кодировки файла и набора символов с помощью командной строки в Mac OS

Основной синтаксис следующий:

file -I (входной файл)

(Если это не очевидно, это заглавная «i» в качестве флага, как в -I, а не строчная L)

Нажатие return с правильным именем файла в качестве ввода покажет набор символов, такой как UTF-8, us-ascii, двоичный, 8-битный и т. д.

Например, предположим, что мы проверяем набор символов и кодировку файла с именем «text.txt», тогда синтаксис будет выглядеть следующим образом:

$ файл -I text.txt
text.txt: text/plain; кодировка=неизвестно-8 бит

С типом файла text/plain и кодировкой файла с набором символов «unknown-8bit».

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

$ file -I DownloadedFile.zip
DownloadedFile.zip: application/zip; набор символов = двоичный

Существует множество других способов проверки набора символов, кодировки файла и типа файла через командную строку с помощью команды «файл», а флаг -I — лишь один из множества доступных параметров. Посетите страницу руководства для файла, чтобы узнать больше, если интересно, и не забудьте ознакомиться с другими нашими советами по работе с командной строкой (или перечислите все команды терминала, доступные на Mac, и немного повеселитесь).

Знаете ли вы другой или лучший способ проверить кодировку файла и набор символов через командную строку в Mac OS? Дайте нам знать в комментариях!

Этот форум перенесен в раздел вопросов и ответов Майкрософт. Посетите Microsoft Q&A, чтобы публиковать новые вопросы.

Отвечает:

Вопрос

Вот мой код:

Пожалуйста, помогите мне показать, что я был неправ?

Спасибо за помощь,

Ответы

То, о чем вы спрашиваете, в общем случае невозможно. Вы не можете посмотреть произвольный файл и определить, какая у него кодировка. Например, если нет байтов выше 0x7F, это может быть ЛЮБАЯ кодировка. Даже если есть расширенные байты, машина не может сказать об этом.

Однако результат, который вы получаете, совершенно правильный. Все файлы ANSI можно без проблем обрабатывать как UTF-8. Проблема возникает только тогда, когда файл содержит символы, отличные от ANSI (выше 0x7F).

Тим Робертс, водитель MVP Providenza & Boekelheide, Inc.

  • Предложено в качестве ответа редактором cheong00 23 июня 2016 г., 1:40.
  • Помечено в качестве ответа DotNet Wang 4 июля 2016 г., 3:06

Все ответы

>>" Система . Текст . Кодировка< /em> enc = sr . CurrentEncoding ; "

Это может указывать только на кодировку потока, а не на кодировку файла.

>>" Определить кодировку файла "

С уважением,
Ли Ван

Мы стараемся лучше понять мнение клиентов об опыте социальной поддержки, поэтому будем очень признательны за ваше участие в этом интервью, если у вас есть время. Спасибо, что помогаете сделать форумы сообщества отличным местом.
Нажмите ЗДЕСЬ, чтобы принять участие в опросе.

То, о чем вы спрашиваете, в общем случае невозможно. Вы не можете посмотреть произвольный файл и определить, какая у него кодировка. Например, если нет байтов выше 0x7F, это может быть ЛЮБАЯ кодировка. Даже если есть расширенные байты, машина не может сказать об этом.

Однако результат, который вы получаете, совершенно правильный. Все файлы ANSI можно без проблем обрабатывать как UTF-8. Проблема возникает только тогда, когда файл содержит символы, отличные от ANSI (выше 0x7F).

Тим Робертс, водитель MVP Providenza & Boekelheide, Inc.

  • Предложено в качестве ответа редактором cheong00 23 июня 2016 г., 1:40.
  • Помечено в качестве ответа DotNet Wang 4 июля 2016 г., 3:06

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

Подумайте, насколько хорошо IE, Firefox, Chrome и Safari угадывают правильную кодовую страницу, когда в метатеге или заголовке ответа не указана кодировка.

Чтобы точно определить кодировку текста, подпрограмма должна перебрать все известные ей кодировки, от самых ограничивающих до более общих, и пропустить следующую кодировку, такую ​​как символ "за пределами границ". обнаружен. Как только все символы помещаются в определенные диапазоны байтов, вы можете объявить, что это правильная кодировка.

Однако это очень медленный процесс, поэтому большинство алгоритмов пробуют только самые распространенные и выбирают первые 10–30 байтов файла для тестирования. Это позволяет нам получить результат быстрее, но приводит к снижению точности.

Читайте также: