- Кодировка htaccess – как изменить
- Зачем нужна кодировка на сайте
- Как настроить кодировки сайта в файле htaccess
- Как задать еще одну кодировку для некоторых разделов сайта
- Директива Default_charset
- Как задать кодировку в htaccess
- Комментарии ( 14 ):
- Кодировка windows 1251 в сайтостроении
- Кодировка windows 1251 в html
- Кодировка windows 1251 в PHP
- Кодировка windows 1251 в htaccess
- Изменение кодировки сайта в файле .htaccess
- Как узнать кодировку сайта
- Общий способ
- Редактирование файла .htaccess
- На всем сайте
- В отдельном файле или группе файлов
Кодировка htaccess – как изменить
Время на чтение: 4 минуты
Каждый пользователь Интернета во время серфинга натыкался на сайты, которые отображаются некорректно. К примеру, на таких сайтах могли отображаться вместо понятных слов неясные закорючки в виде символов, дуг, иероглифов и так далее. Особенно высокая вероятность увидеть такой сайт, если вы перейдете на какой-нибудь китайский или японский портал. А все потому, что там используют иные кодировки, нежели в Рунете. Файл htaccess поможет предотвратить появление таких закорючек на вашем сайте.
Зачем нужна кодировка на сайте
Существует основная кодировка сайта, так называемый Default Charset. Кодировка нужна для того, чтобы определять правило преобразования символов в кодовые значения.
Раньше кодировки были маленькими, и включали не более 7 бит информации, такие как ASCII. Теперь кодировок появилось большое множество, включая популярные UTF8, и Windows 1251.
Суть в том, что файл с разными кодировками будет выглядеть по-разному. Именно из-за этого и появляются ошибки на страницах сайта. Ваш браузер может быть настроен на одну кодировку, а на сервере в файле htaccess может быть указана другая, что в итоге превращает весь контент в месиво несвязных символов.
В файле htaccess вы можете указать параметр Default Charset, который будет определять главную кодировку для всего веб-ресурса. Также вы сможете прописать помимо Default Charset и другие кодировки, которые будут верно отображаться на страницах сайта. Обычно, вебмастера в обязательном порядке указывают UTF8 и Windows 1251, поскольку эти кодировки используются по умолчанию многими браузерами и текстовыми редакторами.
Чтобы избежать появления неразборчивых закорючек на сайте, вам следует либо настроить главную кодировку сайта при помощи Default Charset и запретить перекодировку файлов, либо прописать все допустимые кодировки в htaccess, включая UTF8, Windows 1251 и другие. Ведь главная проблема в том, что, к примеру, пользователь может отправить данные в другой кодировке, и тогда сервер не сумеет ее прочитать. Вам нужно предупредить такие действия.
Как настроить кодировки сайта в файле htaccess
Чтобы указать ключевую кодировку Default Charset, которая по умолчанию обрабатывается сервером и отправляется в браузер, воспользуйтесь опцией AddDefaultCharset. Она необходима для того, чтобы добавить (add) настройку кодировки по умолчанию (Default Charset). Дело в том, что при отправке HTTP-заголовков, в них в разделе Content-Type прописывается Charset, который передает браузеру, в какой кодировке рассматривать символы на сайте. Если хотите прописать UTF8, то укажите AddDefaultCharset UTF8, а если Windows 1251 – то AddDefaultCharset Windows 1251.
AddDefaultCharset – это основная директива, которая вам понадобится для настройки кодировок сайта в файле htaccess. Команда AddDefaultCharset окончательно решит проблему со скриптами, которые по умолчанию используют не UTF8 или Windows 1251, а какие-то другие неизвестные русским браузерам кодировки. Если бы вы не прописали параметр AddDefaultCharset, то в браузере появилась бы ошибка, а так все документы перекодируются в основную кодировку. Учтите, что не каждый браузер одинаково видит все кодировки, потому лучше используйте самые популярные – уже упомянутые UTF8 или Windows 1251.
Также вы можете избавиться от проблем с кодировками, если активируете автоматическую перекодировку файлов при помощи htaccess. Для этого используйте опцию CharsetSourceEnc, после которой пропишите основную кодировку ресурса, в которую будут перекодироваться все прочие. Если по каким-то причинам вам нужно убрать перекодировку, то пропишите в htaccess следующую строку: CharsetDisable On.
Как задать еще одну кодировку для некоторых разделов сайта
Хоть такое и бывает нечасто, но порой возникает потребность сделать одну страницу или целую часть раздела на другом языке. Другой язык – это автоматически и другая кодировку. А если у вас в корневом каталоге лежит файл htaccess, в котором написано AddDefaultCharset Windows-1251, то все страницы автоматически будут читаться по этой кодировке. В результате, пользователь зайдет в иностранный раздел вашего сайта и вместо статьи на финском языке увидите набор несвязных символов.
Чтобы разобраться с этой проблемой, вам необходимо будет создать отдельный файл htaccess и прописать в нем: AddType “text/html; charset=iso-8859-1” .html. Дело в том, что этот файл может действовать как на весь сайт, так и на отдельные его каталоге. Все зависит от того, где вы поместите htaccess. Если разместите второй htaccess внутри папки /fin/ с финским разделом сайта, то конфигурации будут работать только на эту часть ресурса. Остальные будут подчиняться главному файлу htaccess, размещенному в корне сайта. А при помощи указанной строки все файлы html в папке fin будут работать по ISO-8859-1.a
Директива Default_charset
Директива Default_charset указывает кодировку по умолчанию для всех PHP документов. Наиболее часто используються следующие кодировки символов: UTF-8, ASCII, Windows-1251 (CP1251).
Пример использования:
В зависимости от версии интерпретатора PHP, директива Default_charset имеет разные значения по умолчанию, поэтому не рекомендуется оставлять параметр директивы пустым.
Начиная с версии PHP 5.6 значение по умолчанию является UTF-8 и используется для большинства функций, в частности и для функций Mbstring, если кодировка не изменена в параметрах вызова данных функций. Если директива Default_charset имеет пустой параметр, то кодировка PHP документов определяется директивами AddDefaultCharset, AddCharset в файле .htaccess.
Кодировка, указанная в директиве Default_charset используется для стандартного заголовка Content-Type, отправляемого PHP, если этот заголовок не переопределен вызовом функции Header.
Проверить статус директивы можно с помощью функции Ini_get:
Директива Default_charset относиться к режиму PHP_INI_ALL, поэтому значение может быть установлено отовсюду (более детально в статье: Установка параметров конфигурации PHP).
Кодировку можно также изменить непосредственно в исполняемом файле PHP с помощью функции Ini_set:
или в настройках файла .htaccess:
Будьте внимательны при написании параметра директивы, поскольку системных ошибок не будет, а вывод информации испортиться:
Как задать кодировку в htaccess
Одна из самых частых проблем сайта — это его кодировка. И несмотря на это многие Web-мастера продолжают утверждать, что браузер сам выбирает кодировку. Действительно, он выбирает кодировку сам, но делает это не всегда правильно. Вот это и есть самая распространнёная ошибка с кодировкой: сайт в кодировке, допустим, UTF-8, а браузер настойчиво выбирает windows-1251. Вот как задать жёстко кодировку через файл htaccess, я расскажу в этой небольшой статье.
Для того, чтобы задать кодировку файла в htaccess достаточно написать в нём всего одну строчку:
Если Вам нужна windows-1251, то тогда так:
Всего одна строчка и теперь браузер, независимо от своего предпочтения, будет выбирать указанную кодировку. Сразу говорю, данный способ — это действительно мощный. Вы должны понимать, что раз браузер неправильно распознаёт кодировку Вашего сайта (игнорируя даже мета-тег «ContentType«), значит, на то есть свои причины, поэтому внимательно проверьте: везде ли всё хорошо отображается.
Надеюсь, что этой статьей я помог Вам решить проблему с кодировкой. А в следующей статье я расскажу о проблеме, связанной с кодировкой базы данных. Это тоже весьма частая проблема, которую многие не могут решить.
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
Она выглядит вот так:
Комментарии ( 14 ):
Фух норм инструкция, а то вроде все UTF 8, а браузер кракозябры показывает
Кодировка windows 1251 в сайтостроении
Кодировка windows 1251 была создана в начале 90 годов для русификации программных продуктов, выпускаемых корпорацией Microsoft :
- 0xFF (25510) – это код, который зарезервирован для символа «я». В программах, которые не поддерживают чистый 8-ой бит, часто возникают непредсказуемые проблемы;
- Нет псевдографики, которая присутствует в KOI8 , CP866 .
Ниже приведены символы из Code Page 1251 или сокращенно СР1251 ( числа под символами являются кодом в шестнадцатеричной системе такого же символа в Юникоде ):
Кодировка windows 1251 в html
Нередко у web-разработчиков и блогеров, обладающих различной квалификацией возникает проблема с кодировкой страниц: вместо подготовленного текста появляются неизвестные, нечитаемые символы. Чтобы разобраться с данной проблемой, необходимо понимать суть термина « кодировка страницы ».
Текст в памяти компьютера хранится в виде определенного количества байт, а не в том виде, в котором он отображается в текстовом редакторе. Каждый байт является кодом, который соответствует одному символу. Для того чтобы текст на странице отображался как следует, нужно сообщить браузеру, какую таблицу кодов для расшифровки и отображения он должен использовать.
Таблица кодировок не является универсальной, то есть, для расшифровки текста необходимо использовать ту, которая соответствует кодировке символов:
— между тегом и закрывающим его нужно прописать — исходя из этой строки, браузер будет использовать символы русского алфавита для отображения текста на странице.
Кодировка windows 1251 в PHP
Ни для кого не является тайной, что генерация страниц проходит путем выборки и использования какой-то части информации, которая хранится в базе данных. При написании сайта на PHP , чаще всего это mysql :
Для согласования расшифровки необходимо выполнить функцию mysql_query(«SET NAMES cp1251») – это означает, что преобразование из машинного кода будет осуществляться согласно таблице cp1251 .
Кодировка windows 1251 в htaccess
При создании сайта, предварительно настроив кодировки в шаблонах и базах данных, все равно может всплыть проблема некорректного отображения информации в браузере.
Для того чтобы для веб-ресурса была задана кодировка виндовс-1251 , необходимо найти ( или создать ) файл .htaccess . Это файл, который хранит в себе дополнительные настройки и описания конфигураций web-сервера.
В нем для установки кодировки следует прописать следующие строки:
- DefaultLanguage ru;
- AddDefaultCharset windows-1251;
- php_value default_charset «cp1251».
Таким образом, для корректного отображения текста должны совпадать его кодировка и таблица кодов, с помощью которой браузер будет расшифровывать символы. Для текстов, написанных на славянских языках, необходима win 1251 кодировка. Важно помнить, что элементы страниц и баз данных должны быть описаны с помощью одной таблицы кодов.
Изменение кодировки сайта в файле .htaccess
Кодировка сайта меняется вручную в том случае, если браузер выбирает неверный вариант кодировки, итогом чего становится появление набора символов, вместо обычного вида веб-страницы. Например, для чтения файлов используется Windows-1251, из-за чего возникают проблемы с ресурсами, на которых используется кодировка UTF-8, которая является стандартной для большинства сайтов.
Как узнать кодировку сайта
Посмотреть кодировку сайта легко — достаточно перейти на любую страницу ресурса и нажать правую кнопку мыши (или сочетание клавиш CTRL+U ), чтобы посмотреть исходный код («View page source» или « Просмотр кода страницы »).
Для поиска нужного мета-тега в коде вызовите функцию поиска сочетанием CTRL+F . Затем в строку поиска необходимо ввести « charset », чтобы отыскать нужное значение.
Общий способ
Одной из наиболее часто встречающихся причин считается неправильно прописанный мета-тег content-type :
Но если после его изменения ничего не меняется, и браузер не считает тег основополагающим, понадобится поменять значение вручную.
Редактирование файла .htaccess
Существует несколько способов, как сменить кодировку в файле .htaccess
На всем сайте
Изменить кодировку сайта целиком можно через .htaccess — файл конфигурации, отвечающий за настройку работы веб-сервера Apache.
Принцип редактирования один для всех панелей управления, но для примера рассмотрим одну из них — ISPmanager. Для изменения кодировки через .htaccess в данной панели управления нужно:
-
- Авторизоваться в панели управления в ISPmanager.
- Перейти в раздел «Менеджер файлов». Далее перейти в папку «www» и войти в корневую папку (с названием сайта).
- Выбрав в списке файл .htaccess, нажать на кнопку «Создать» и в открывшемся меню выбрать «Изменить».
- После этого можно редактировать файл самостоятельно.
- Для изменения на стандартный вариант UTF-8, нужно добавить строчку:
-
- Внесение изменений необходимо подтвердить, нажав на кнопку «Сохранить».
Возможно и обратное изменение для которого добавляется:
В отдельном файле или группе файлов
В некоторых случаях указать кодировку в .htaccess необходимо только для одного файла. Для этого понадобится открыть файл .htaccess в текстовом редакторе и добавить в него следующий блок:
В результате, директива AddCharset будет конвертировать указанный файл ( file.html ) в заданную кодировку ( UTF-8 ).
Этого же результата можно достичь, пользуясь директивой ForceType :
Для внесения изменений кодировки в несколько файлов одновременно, их имена указываются при помощи синтаксиса регулярных выражений.
При комплексных сценариях, применяющихся к одному документу, придется учесть порядок расположения расширений. Например:
В указанном правиле файл « file.utf8.html » будет выводиться в кодировке windows-1252, а « file.html.utf8 » — в UTF-8.
Начни экономить на хостинге сейчас — 14 дней бесплатно!