Перейти к содержимому

Как подключить utf 8 html

  • автор:

Кодировка UTF-8 в html странице

Есть index.html , который, при запуске локально (chrome, IE), отображается корректно. При загрузке на виртуальный сервер, и открытии через Chrome — абракадабра. Через IE — все ок (вероятно, IE подстраивается под необходимую кодировку, хотя в кодировке так же — UTF-8 ). В head есть строка:

Но wget возвращает: charset=CP1251 . Почему? Возможно, нужно поменять что-то на сервере? Сервер linux, uhttpd

Отслеживать
2,969 3 3 золотых знака 15 15 серебряных знаков 30 30 бронзовых знаков
задан 3 ноя 2015 в 11:13
Vyacheslav Groshenkov Vyacheslav Groshenkov
157 2 2 серебряных знака 10 10 бронзовых знаков

да, вероятно, надо заменить заголовок content-type на актуальный. посмотрите, что возвращает, например, этот сайт: $ wget -S —spider http://stackoverflow.com |& grep -i content-type

3 ноя 2015 в 11:19

Вернуло: Content-Type: text/html; charset=utf-8 Соответственно, у меня и стоит utf-8. Поэтому, никак не могу понять, в чем проблема. Попробовал поменять на: — не помогло. (в таком режиме корректно работают php страницы на сервере).

3 ноя 2015 в 11:23

Я сделал команду выше на свой сайт, вернуло: text/html; charset=CP1251 . Хотя в index.html стоит UTF-8. Видимо в этом и ошибка. Почему так может быть?

3 ноя 2015 в 11:26

Почему так может быть? — вероятно, так настроен ваш http-сервер. кстати, это может быть совсем и не uhttpd, а, например, какой-нибудь прокси-сервер. посмотрите другие возвращаемые заголовки (убрав из предложенной команды всё, начиная с | ).

3 ноя 2015 в 11:29

@banme заголовок и BOM приоритетнее: This element is only a part of the algorithm to determine the character set of a page that browsers apply. The HTTP Content-Type header and any BOM elements have precedence over this element. — developer.mozilla.org/en/docs/Web/HTML/Element/meta

– user177221
12 ноя 2015 в 9:28

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Проверьте в какой кодировке сам документ index.html Откройте его к примеру в Notepad++ вкладка КОДИРОВКА и выберете UTF8 без BOM . После перезалейте на сервер.

Отслеживать
473 2 2 золотых знака 8 8 серебряных знаков 28 28 бронзовых знаков
ответ дан 12 ноя 2015 в 9:03
21 2 2 бронзовых знака

Проблема в кодировке, отдаваемой сервером в заголовках (Content-type). Ее можно изменить в конфигурационном файле сервера (для apache httpd.conf), или в случаях, если он не доступен на хостинге или поддерживает сайты в разных кодировках, то надо использовать файл .htaccess в корневой папке Вашего сайта (там, где index.html и т.п.) Если файла .htaccess нет, то просто создайте его. В нем надо указать строку:

AddDefaultCharset UTF-8 

Отслеживать
ответ дан 12 ноя 2015 в 9:30
44.1k 3 3 золотых знака 35 35 серебряных знаков 66 66 бронзовых знаков

  • linux
  • кодировка
  • сервер
  • google-chrome
  • utf-8
    Важное на Мете
Связанные
Похожие

Подписаться на ленту

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

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.15.1019

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Настройка параметра HTTP charset

Когда сервер отправляет документ клиентскому приложению (например, браузер), он также отправляет информацию в поле Content-Type сообщая заголовок HTTP о том, какой это тип данных. Эта информация выражается с помощью отметки MIME. Эта статья должна стать отправной точкой для тех, кто должен установить информацию о кодировке в заголовке HTTP.

Параметр charset

Документы, переданные с HTTP, которые имеют следующие типы текста: text/html, text/plain, и т.д., могут послать charset параметр к заголовку HTTP, чтобы указать кодировку символов документа.

Это очень важно всегда явно отмечать Веб документы. В HTTP 1.1 говорится, что по умолчанию charset должен быть ISO-8859-1. Но есть очень много неотмеченных документов в других кодировках, поэтому когда нет явного параметра charset браузеры используют то кодирование, которое предпочитает читатель.

Обычно строка в заголовке HTTP выглядит следующим образом:

Content-Type: text/html; charset=utf-8

Установка сервера

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

Apache. Это можно сделать с помощью AddCharset (Apache 1.3.10 и позднейшие) или директив AddType для каталогов или отдельных ресурсов (файлов). С помощью AddDefaultCharset (Apache 1.3.12 и позднейшие), можно установить параметр charset по умолчанию для всего сервера. Дополнительные сведения смотрите в статье Настройка ‘charset’ информации в .htaccess.

Jigsaw. Используйте indexer в JigAdmin , чтобы связать расширения с charset, или установить charset непосредственно на ресурсе .

IIS 5 и 6. В Internet Services Manager, щелкните правой кнопкой мыши «Default Web Site» (или сайт, который нужно настроить) и перейдите к «Properties» => «HTTP Headers» => «File Types. » => «New Type. «. Поставьте расширение, которое вы хотите отобразить, отдельно для каждого расширения; вероятно пользователи IIS захотят, отобразить .htm, .html. Тогда добавьте к Content type » text/html;charset=utf-8 » (без кавычек; замените желаемый вами charset на iso-8859-1; нигде не оставляйте пробелы, поскольку IIS игнорирует весь текст после пробелов). Для IIS 4, вам возможно, придется использовать «HTTP Headers» => «Creating a Custom HTTP Header» если выше указанная схема не работает.

Скриптовий заголовок

Соответствующий заголовок можно также установить в server side scripting languages (скриптовые языки сервера). Например:

Perl. Выведите правильный заголовок перед любой частью текущей страницы. После последнего заголовка, используйте двойной linebreak (разрыв строки), например:
print «Content-Type: text/html; charset=utf-8\n\n»;

Python. Используйте то же решение, что и для Perl (кроме того, что в конце вам не нужно использовать точку с запятой).

PHP. Перед созданием любого контента используйте функцию header(), например:
header(‘Content-type: text/html; charset=utf-8’);

Java Servlets. Используйте setContentType метод на ServletResponse до получения любого объекта (Stream или Writer) использованного для вывода, например:
resource.setContentType («text/html;charset=utf-8»);
Если вы используете Writer, Servlet автоматически заботится о преобразовании с Java Строк в избранное кодирование.

JSP. Используйте директиву page например:

Выводит из out.println() или выраженные элементы ( ) автоматически превращаются в избранное кодирование. Кроме того, сама страница интерпретируется, как закодированная в этой кодировке.

ASP и ASP.Net. ContentType и charset устанавливаются независимо, и есть методы для соответствующего объекта. Чтобы установить charset, используйте например:

В ASP.Net, настройки Response.ContentEncoding будет влиять на параметр charset в HTTP Content-Type так же как отправленное фактическое кодирование документа (которое, конечно, должно быть таким же). По умолчанию может быть установлено в элементе globalization в Web.config (или Machine.config , которое первоначально установленно в UTF-8).

Дополнительные материалы

  • Настройка charset информации в .htaccess
  • Проверка заголовков HTTP
  • Пособие, Обработка кодирования символов в HTML и CSS
  • Ссылки по теме, Настройка сервера
    • Символы
    • Настройка параметра HTTP charset
    • Символы
    • Символы

    mb_internal_encoding

    encoding — это имя кодировки, в которую будут преобразовываться входные данные HTTP-запроса, из которой будет конвертироваться HTTP-вывод, а также это кодировка по умолчанию для всех функций, работающих со строками, определёнными в модуле mbstring. Обратите внимание, что внутренняя кодировка полностью отличается от кодировки для многобайтовых регулярных выражений.

    Возвращаемые значения

    Если аргумент encoding задан, то Возвращает true в случае успешного выполнения или false в случае возникновения ошибки. В этом случае не меняется кодировка символов для многобайтных регулярных выражений. Если аргумент encoding опущен, будет возвращено имя текущей внутренней кодировки.

    Ошибки

    Начиная с PHP 8.0.0, выбрасывается исключение ValueError , если значение параметра encoding является недопустимой кодировкой. До PHP 8.0.0 вместо этого выдавалась ошибка уровня E_WARNING .

    Список изменений

    Версия Описание
    8.0.0 Теперь параметр encoding может принимать значение null .
    8.0.0 Теперь выбрасывается исключение ValueError , если значение параметра encoding является недопустимой кодировкой. Ранее вместо этого выдавалась ошибка уровня E_WARNING .

    Примеры

    Пример #1 Пример использования mb_internal_encoding()

    /* Установка внутренней кодировки в UTF-8 */
    mb_internal_encoding ( «UTF-8» );

    /* Вывод на экран текущей внутренней кодировки */
    echo mb_internal_encoding ();
    ?>

    Смотрите также

    • mb_http_input() — Определение кодировки символов входных данных HTTP-запроса
    • mb_http_output() — Установка/получение кодировки символов вывода HTTP
    • mb_detect_order() — Установка/получение списка кодировок для механизмов определения кодировки
    • mb_regex_encoding() — Устанавливает/получает текущую кодировку для многобайтового регулярного выражения

    User Contributed Notes 7 notes

    17 years ago

    Especially when writing PHP scripts for use on different servers, it is a very good idea to explicitly set the internal encoding somewhere on top of every document served, e.g.

    This, in combination with mysql-statement «SET NAMES ‘utf8′», will save a lot of debugging trouble.

    Also, use the multi-byte string functions instead of the ones you may be used to, e.g. mb_strlen() instead of strlen(), etc.

    8 years ago

    header ( ‘Content-Type: text/html; charset=UTF-8’ );

    mb_internal_encoding ( ‘UTF-8’ );
    mb_http_output ( ‘UTF-8’ );
    mb_http_input ( ‘UTF-8’ );
    mb_regex_encoding ( ‘UTF-8’ );

    18 years ago

    Be aware that the strings in your source files must match the encoding you specify by mb_internal_encoding. It appears the Parser loads raw bytes from the file and refers to its internal encoding to determine their actual encoding.

    To demonstrate, the following outputs as espected when the /source/ file is Latin-1 encoded:

    mb_internal_encoding ( «iso-8859-1» );
    mb_http_output ( «UTF-8» );
    ob_start ( «mb_output_handler» );

    Now, a typical use of mb_internal_encoding is shown as follows. Make the change to «utf-8» but leave the /source/ file encoding unchanged:

    mb_internal_encoding ( «UTF-8» );
    mb_http_output ( «UTF-8» );
    ob_start ( «mb_output_handler» );

    The output will just show the
    tag and no text.

    Save the file as UTF-8 encoding and then the results will be as expected.

    /utf-8 (Задайте для исходных и выполняемых наборов символов значение UTF-8)

    Этот параметр можно использовать /utf-8 для указания исходных и символьных наборов выполнения в кодировке с помощью UTF-8. Это эквивалентно /source-charset:utf-8 /execution-charset:utf-8 указанию в командной строке. Любой из этих параметров также включает /validate-charset параметр по умолчанию. Список поддерживаемых идентификаторов кодовой страницы и имен наборов символов см. в разделе «Идентификаторы кодовой страницы».

    По умолчанию Visual Studio обнаруживает метку порядка байтов, чтобы определить, находится ли исходный файл в формате Юникода, например UTF-16 или UTF-8. Если метка порядка байтов не найдена, предполагается, что исходный файл закодирован на текущей пользовательской кодовой странице, если только вы не указали кодовую страницу или /utf-8 /source-charset параметр. Visual Studio позволяет сохранять исходный код C++ в любом из нескольких кодировк символов. Сведения о наборах символов источника и выполнения см . в документации по языку.

    Установка параметра в Visual Studio или программным способом

    Установка данного параметра компилятора в среде разработки Visual Studio

    1. Откройте диалоговое окно Окна свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойств сборки в Visual Studio.
    2. Перейдите на страницу свойств Свойства конфигурации>C/C++>Командная строка.
    3. В разделе «Дополнительные параметры» добавьте параметр, чтобы указать /utf-8 предпочитаемую кодировку.
    4. Нажмите ОК, чтобы сохранить внесенные изменения.

    Установка данного параметра компилятора программным способом

    • См. раздел AdditionalOptions.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

https://kapelnicza.vyvod-iz-zapoya-v-stacionare-samara12.ru/