Изменить кодировку HTML-файла

Обновлено: 04.07.2024

Чтобы правильно отображать и редактировать файлы, IntelliJ IDEA необходимо знать, какую кодировку использовать. Как правило, файлы исходного кода в основном имеют кодировку UTF-8. Это рекомендуемая кодировка, если у вас нет других требований.

Чтобы определить кодировку файла, IntelliJ IDEA использует следующие шаги:

Если присутствует метка порядка байтов (BOM), IntelliJ IDEA будет использовать соответствующую кодировку Unicode независимо от всех других настроек. Дополнительные сведения см. в разделе Метка порядка байтов.

Если файл объявляет кодировку явно, IntelliJ IDEA будет использовать указанную кодировку. Например, это может относиться к файлам XML, HTML и JSP. Явное объявление также переопределяет все остальные настройки, но вы можете изменить его в редакторе.

Если в файле нет спецификации и явного объявления кодировки, IntelliJ IDEA будет использовать кодировку, настроенную для файла или каталога в настройках кодирования файла. Если для файла или каталога не настроена кодировка, IntelliJ IDEA будет использовать кодировку родительского каталога. Если кодировка родительского каталога также не настроена, IntelliJ IDEA будет использовать Project Encoding , а если проекта нет — Global Encoding .

Изменить кодировку, используемую для просмотра файла

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

Открыв файл в редакторе, выберите Файл | Свойства файла | Кодировка файла в главном меню или щелкните виджет «Кодировка файла» в строке состояния и выберите правильную кодировку файла.

Кодировка строки состояния

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

Кодировки, помеченные или могут изменить содержимое файла. В этом случае IntelliJ IDEA открывает диалоговое окно, в котором вы можете выбрать, что делать с файлом:

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

Преобразовать: перезаписать файл выбранной кодировкой.

Это добавит ассоциацию для файла в настройки кодирования файла. IntelliJ IDEA будет использовать указанную кодировку для просмотра и редактирования этого файла.

Настройка параметров кодирования файлов

В диалоговом окне «Настройки/Настройки» ( Ctrl+Alt+S ) выберите «Редактор | Кодировки файлов .

IntelliJ IDEA использует эти настройки для просмотра и редактирования файлов, для которых не удалось определить кодировку, а также использует указанные кодировки для новых файлов.

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

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

Выберите кодировку для файлов, не указанных в таблице.

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

Выберите кодировку для указанных файлов и каталогов.

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

Кодировка, выбранная для каталога, применяется ко всем файлам и подкаталогам в нем.

Кодировка по умолчанию для файлов свойств

Выберите кодировку для файлов свойств в вашем проекте.

Стандартный Java API предназначен для использования кодировки ISO 8859-1 для файлов свойств. Вы можете использовать escape-последовательности для символов, которые не определены этой кодировкой. Кроме того, вы можете определить кодировку по умолчанию для файлов свойств на уровне проекта и использовать другой API, который может считывать файлы свойств в указанной вами кодировке.

Прозрачное преобразование исходного кода в ASCII

Показывать национальные символы (не определенные в ISO 8859-1) вместо соответствующих escape-последовательностей.

Создать файлы UTF-8

Выберите, как IntelliJ IDEA должна создавать файлы UTF-8:

со спецификацией в окне и без спецификации в противном случае

По умолчанию IntelliJ IDEA создает файлы UTF-8 без спецификации, поскольку некоторые программы несовместимы со спецификацией, и это может вызвать проблемы при интерпретации скриптов. Однако в некоторых случаях вам может понадобиться иметь спецификацию в файлах UTF-8.

Чтобы добавить или удалить спецификацию из всех файлов UTF-8 в вашем проекте, щелкните правой кнопкой мыши имя своего проекта в окне инструмента "Проект" и выберите "Добавить спецификацию" или "Удалить спецификацию" .

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

По умолчанию IntelliJ IDEA использует системную кодировку для просмотра вывода консоли.

В диалоговом окне «Настройки/Настройки» ( Ctrl+Alt+S ) выберите «Редактор | Общие | Консоль.

Целевая аудитория: авторы HTML (использующие редакторы или скрипты), разработчики скриптов (PHP, JSP и т. д.), менеджеры веб-проектов и все, кому нужно узнать, как объявить кодировку символов в HTML-файле.

Вопрос

Как мне объявить кодировку моего HTML-файла?

Всегда следует указывать кодировку, используемую для страницы HTML или XML. Если вы этого не сделаете, вы рискуете неправильно интерпретировать символы в вашем контенте. Это не просто проблема удобочитаемости для человека, все чаще машинам также необходимо понимать ваши данные. Объявление кодировки символов также необходимо для обработки символов, отличных от ASCII, вводимых пользователем в формах, в URL-адресах, сгенерированных сценариями, и т. д. В этой статье описывается, как это сделать для HTML-файла.

Если вам нужно лучше понять, что такое символы и кодировки символов, см. статью Кодировки символов для начинающих . Сведения об объявлении кодировок для таблиц стилей CSS см. в разделе Объявления кодировок символов CSS .

Быстрый ответ

Неважно, какой из них вы используете, но проще ввести первый. Также не имеет значения, вводите ли вы UTF-8 или utf-8 .

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

Подробнее

А как насчет метки порядка байтов?

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

С другой стороны, есть ряд потенциальных недостатков:

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

Должен ли я использовать этот метод?

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

Работа с форматами полиглот и XML

XHTML5: Документ XHTML5 обслуживается как XML и имеет синтаксис XML. Синтаксические анализаторы XML не распознают объявления кодировки в метаэлементах. Они распознают только объявление XML. Вот пример:

Объявление XML требуется только в том случае, если страница не обслуживается как UTF-8 (или UTF-16), но может быть полезно включить его, чтобы разработчики, тестировщики или менеджеры по производству переводов могли визуально проверять кодировку. документа, просмотрев источник.

Разметка полиглота. Страница, использующая разметку полиглота, использует подмножество HTML с синтаксисом XML, который может анализироваться синтаксическим анализатором HTML или XML. Он описан в документе Polyglot Markup: надежный профиль словаря HTML5 .

Поскольку объявление в метаэлементе будет распознано только парсером HTML, если вы используете подход с атрибутом содержимого, его значение должно начинаться с text/html; .

Если вы используете метаэлемент с атрибутом charset, это не то, что вам нужно учитывать.

Дополнительная информация

Информация в этом разделе относится к вещам, которые обычно вам не нужны, но которые включены сюда для полноты картины.

Работа с кодировками, отличными от UTF-8

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

Хотя обычно это имена, на самом деле они относятся к кодировкам, а не к наборам символов. Например, набор символов Unicode или «репертуар» можно закодировать с помощью трех разных схем кодирования.

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

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

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

Не придумывайте свои собственные имена кодировок, которым предшествует x- . Это плохая идея, поскольку она ограничивает совместимость.

Работа с устаревшими форматами HTML

HTML 4.01 не определяет использование атрибута charset с элементом meta, но любой современный браузер все равно обнаружит и использует его, даже если страница объявлена ​​как HTML4, а не HTML5. Этот раздел актуален только в том случае, если у вас есть какие-либо другие причины, кроме обслуживания браузера для соответствия более старому формату HTML. В нем описываются любые отличия от раздела «Ответ» выше.

HTML4: как упоминалось выше, для полного соответствия HTML 4.01 необходимо использовать директиву pragma, а не атрибут charset.

XHTML 1.x используется как text/html: также требуется директива pragma для полного соответствия HTML 4.01, а не атрибут charset. Вам не нужно использовать декларацию XML, так как файл обслуживается как HTML.

XHTML 1.x используется как XML: используйте объявление кодировки объявления XML в первой строке страницы. Убедитесь, что перед ним нет ничего, включая пробелы (хотя метка порядка байтов допустима).

Атрибут charset в ссылке

HTML5 не рекомендует использовать атрибут charset для элемента a или link, поэтому вам следует избегать его использования. Он возник в спецификации HTML 4.01 для использования с элементами a , link и script и должен был указывать кодировку документа, на который вы ссылаетесь.

Он был предназначен для использования во встроенном элементе ссылки, подобном этому:

Неверный код. Не копируйте!

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

С использованием этого атрибута всегда возникали проблемы. Во-первых, он плохо поддерживается основными браузерами. Одна из причин не поддерживать этот атрибут заключается в том, что если браузеры будут делать это без специальных дополнительных правил, это будет вектором атаки XSS. Во-вторых, трудно гарантировать, что информация верна в любой момент времени. Автор указанного документа вполне может изменить кодировку документа без вашего ведома. Если автор до сих пор не указал кодировку своего документа, теперь вы будете просить браузер применить неправильную кодировку. И в-третьих, в этом не должно быть необходимости, если люди будут следовать рекомендациям, изложенным в этой статье, и правильно размечать свои документы. Это гораздо лучший подход.

Этот способ указания кодировки документа имеет самый низкий приоритет (т. е. если кодировка объявлена ​​каким-либо другим способом, это будет проигнорировано). Это означает, что вы также не можете использовать это для исправления неправильных объявлений.

Работа с кодировкой UTF-16

Согласно результатам выборки Google из нескольких миллиардов страниц, менее 0,01 % страниц в Интернете имеют кодировку UTF-16. UTF-8 составляет более 80% всех веб-страниц, если вы включаете его подмножество, ASCII, и более 60%, если вы этого не делаете. Вам настоятельно не рекомендуется использовать UTF-16 в качестве кодировки страницы.

Если по какой-то причине у вас нет выбора, вот несколько правил объявления кодировки. Они отличаются от кодировок для других кодировок.

Спецификация HTML5 запрещает использование элемента meta для объявления UTF-16, поскольку значения должны быть ASCII-совместимыми. Вместо этого вы должны убедиться, что у вас всегда есть метка порядка байтов в самом начале файла в кодировке UTF-16. По сути, это объявление в документе.

Кроме того, если ваша страница имеет кодировку UTF-16, не объявляйте файл как "UTF-16BE" или "UTF-16LE", используйте только "UTF-16". Метка порядка байтов в начале вашего файла будет указывать, является ли схема кодирования прямым порядком байтов или обратным порядком байтов. (Это связано с тем, что контент, явно закодированный, например, как UTF-16BE, не должен использовать метку порядка байтов, но HTML5 требует метки порядка байтов для страниц в кодировке UTF-16.)

Объявление XML

Объявление XML определяется стандартом XML. Он появляется в начале XML-файла и поддерживает объявление кодировки. Например:

Вы должны использовать декларацию XML, чтобы указать кодировку любого документа XHTML 1.x, используемого как XML.

Может быть полезно использовать XML-объявление для веб-страниц, обслуживаемых как XML, даже если используется кодировка UTF-8 или UTF-16, поскольку такое объявление в документе также помогает разработчикам, тестировщикам или переводчикам. менеджеры устанавливают кодировку файла с визуальной проверкой исходного кода.

Использование объявления XML для XHTML, используемого как HTML. XHTML, используемый в качестве HTML, анализируется как HTML, даже если он основан на синтаксисе XML, поэтому объявление XML не должно распознаваться браузером.Именно по этой причине вы должны использовать директиву pragma для указания кодировки при обслуживании XHTML таким образом*.

* И наоборот, директива pragma, хотя и действительна, не распознается синтаксическими анализаторами XML как объявление кодировки.

С другой стороны, в какой-то момент файл также может быть использован в качестве входных данных для других процессов, использующих синтаксические анализаторы XML. Сюда входят такие вещи, как редакторы XML, преобразования XSLT, AJAX и т. д. Кроме того, иногда люди используют логику на стороне сервера, чтобы определить, следует ли обслуживать файл как HTML или XML. По этим причинам, если вы не используете UTF-8 или UTF-16, вы должны добавить объявление XML в начале разметки, даже если оно передается браузеру как HTML. В этом случае верхняя часть файла будет выглядеть так:

Если вы используете кодировку UTF-8 или UTF-16, объявление XML не требуется, тем более что метаэлемент обеспечивает визуальную проверку кодировки людьми, обрабатывающими файл. .

Поддержка старых браузеров. Если что-либо появляется перед объявлением DOCTYPE в Internet Explorer 6, страница отображается в специальном режиме. Если вы используете UTF-8 или UTF-16, вы можете опустить объявление XML, и у вас не возникнет проблем.

Однако, если вы не используете эти кодировки и пользователи Internet Explorer 6 по-прежнему составляют значительную часть ваших читателей, и если ваш документ содержит конструкции, на которые влияет разница между стандартным режимом и особым режимом, то это может быть проблемой. Если вы хотите, чтобы ваши страницы отображались одинаково во всех браузерах, соответствующих стандартам, вам придется добавить обходные пути в свой CSS, чтобы устранить различия.

Могут быть и некоторые другие проблемы с отображением, связанные с объявлением XML, хотя, вероятно, это проблема только для более старых браузеров. Спецификация XHTML предупреждает, что инструкции по обработке отображаются в некоторых пользовательских агентах. Кроме того, некоторые пользовательские агенты интерпретируют объявление XML как означающее, что документ представляет собой нераспознанный XML, а не HTML, и поэтому может не отображать документ должным образом. Вы должны протестировать соответствующие пользовательские агенты, чтобы решить, будет ли это проблемой для вас.

Конечно, как упоминалось выше, если вы используете UTF-8 или UTF-16, вы можете опустить объявление XML, и файл по-прежнему будет работать как XML или HTML. Это, вероятно, самое простое решение.

Чтобы правильно отображать HTML-страницу, веб-браузер должен знать, какой набор символов использовать.

От ASCII к UTF-8

ASCII был первым стандартом кодирования символов. ASCII определяет 128 различных символов, которые можно использовать в Интернете: цифры (0-9), английские буквы (A-Z) и некоторые специальные символы, такие как ! $ + - ( ) @ .

ISO-8859-1 был набором символов по умолчанию для HTML 4. Этот набор символов поддерживал 256 различных кодов символов. HTML 4 также поддерживает кодировку UTF-8.

ANSI (Windows-1252) — исходный набор символов Windows. ANSI идентичен ISO-8859-1, за исключением того, что ANSI содержит 32 дополнительных символа.

Спецификация HTML5 рекомендует веб-разработчикам использовать набор символов UTF-8, который охватывает почти все символы и символы в мире!

Атрибут HTML-кодировки

Для правильного отображения HTML-страницы веб-браузер должен знать набор символов, используемый на странице.

Это указано в теге:

Различия между наборами символов

В следующей таблице показаны различия между наборами символов, описанными выше:

Набор символов ASCII

ASCII использует значения от 0 до 31 (и 127) для управляющих символов.

ASCII использует значения от 32 до 126 для букв, цифр и символов.

ASCII не использует значения от 128 до 255.

Набор символов ANSI (Windows-1252)

ANSI идентичен ASCII для значений от 0 до 127.

ANSI имеет собственный набор символов для значений от 128 до 159.

ANSI идентичен UTF-8 для значений от 160 до 255.

Набор символов ISO-8859-1

ISO-8859-1 идентичен ASCII для значений от 0 до 127.

ISO-8859-1 не использует значения от 128 до 159.

ISO-8859-1 идентичен UTF-8 для значений от 160 до 255.

Набор символов UTF-8

UTF-8 идентичен ASCII для значений от 0 до 127.

UTF-8 не использует значения от 128 до 159.

UTF-8 идентичен как ANSI, так и 8859-1 для значений от 160 до 255.

UTF-8 продолжает значение 256 с более чем 10 000 различных символов.

Чтобы правильно отображать и редактировать файлы, WebStorm должен знать, какую кодировку использовать. Как правило, файлы исходного кода в основном имеют кодировку UTF-8. Это рекомендуемая кодировка, если у вас нет других требований.

Чтобы определить кодировку файла, WebStorm использует следующие шаги:

Если присутствует метка порядка байтов (BOM), WebStorm будет использовать соответствующую кодировку Unicode независимо от всех других настроек.Дополнительные сведения см. в разделе Метка порядка байтов.

Если файл объявляет кодировку явно, WebStorm будет использовать указанную кодировку. Например, это может относиться к файлам XML или HTML. Явное объявление также переопределяет все остальные настройки, но вы можете изменить его в редакторе.

Если в файле нет спецификации и явного объявления кодировки, WebStorm будет использовать кодировку, настроенную для файла или каталога в настройках кодировки файла. Если для файла или каталога не настроена кодировка, WebStorm будет использовать кодировку родительского каталога. Если кодировка родительского каталога также не настроена, WebStorm будет использовать Project Encoding , а если проекта нет — Global Encoding .

Изменить кодировку файла, содержащего явную кодировку

Откройте нужный файл в редакторе.

Изменить явную информацию о кодировке. Используйте подсветку ошибок, чтобы распознать неправильную кодировку, и нажмите Ctrl+Пробел, чтобы отобразить список доступных кодировок:

Изменить кодировку, используемую для просмотра файла

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

Открыв файл в редакторе, выберите Файл | Свойства файла | Кодировка файла в главном меню или щелкните виджет «Кодировка файла» в строке состояния и выберите правильную кодировку файла.

Изменение кодировки в строке состояния

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

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

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

Преобразовать: перезаписать файл выбранной кодировкой.

Это добавит ассоциацию для файла в настройки кодирования файла. WebStorm будет использовать указанную кодировку для просмотра и редактирования этого файла.

Настроить кодировку по умолчанию для файлов свойств

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

В диалоговом окне «Настройки/Настройки» ( Ctrl+Alt+S ) выберите «Редактор | Кодировки файлов .

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

Чтобы включить специальный режим, когда символы хранятся в файле свойств как управляющие последовательности, но отображаются как обычные буквы, установите флажок Прозрачное преобразование исходного кода в ASCII . Этот параметр полезен, когда файлы свойств закодированы в ISO 8859-1. Рекомендуется использовать этот подход, если у вас нет особых причин менять кодировку.

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

Настройка параметров кодирования файлов

В диалоговом окне «Настройки/Настройки» ( Ctrl+Alt+S ) выберите «Редактор | Кодировки файлов .

WebStorm использует эти настройки для просмотра и редактирования файлов, для которых не удалось определить кодировку, а также использует указанные кодировки для новых файлов.

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

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

Выберите кодировку для файлов, не указанных в таблице.

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

Выберите кодировку для указанных файлов и каталогов.

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

Кодировка, выбранная для каталога, применяется ко всем файлам и подкаталогам в нем.

Кодировка по умолчанию для файлов свойств

Выберите кодировку для файлов свойств в вашем проекте.

Прозрачное преобразование исходного кода в ASCII

Показывать национальные символы (не определенные в ISO 8859-1) вместо соответствующих escape-последовательностей.

Создать файлы UTF-8

Выберите, как WebStorm должен создавать файлы UTF-8:

со спецификацией в окне и без спецификации в противном случае

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

Чтобы добавить или удалить спецификацию из всех файлов UTF-8 в вашем проекте, щелкните правой кнопкой мыши имя своего проекта в окне инструмента "Проект" и выберите "Добавить спецификацию" или "Удалить спецификацию" .

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

По умолчанию WebStorm использует системную кодировку для просмотра вывода консоли.

В диалоговом окне «Настройки/Настройки» ( Ctrl+Alt+S ) выберите «Редактор | Общие | Консоль.

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