Adddefaultcharset utf 8 htaccess не работает

Как починить кодировку

Компьютеры хранят информацию в виде нулей и единиц. Каждому символу присваивается собственная последовательность из этих цифр с помощью специальных таблиц — кодировок. Самые распространенные — cp1251, utf-8.

Вы разместили сайт, а вместо статей на нем отображаются такие символы: это сайт Рѕ котиках

Это означает, что браузер не смог правильно распознать кодировку. Определить ее поможет декодер Лебедева.

Скопируйте часть текста и поместите в декодер:

Он расшифрует фразу и выведет название верной кодировки. Здесь это — utf-8.

Если вы видите нечитаемые символы вместо текста на сайте — измените заголовок страниц, кодировку в файлах или базе данных сайта.

Заголовки

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

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

  • HTML-страница Заголовок
  • PHP-скрипт
  • Python header(‘Content-type: text/html; charset=charset‘)
  • Perl print «Content-Type: text/html; charset=charset\n\n»;

Измените значение параметра «charset», указав кодировку из декодера.

Если в скриптах заголовок не указан, добавьте в файл .htaccess директиву: AddDefaultCharset charset здесь charset — название кодировки из декодера. Например, для utf-8 правило будет выглядеть так: AddDefaultCharset utf-8

Проверьте, верно ли отображаются ваши статьи теперь. Если нет — измените кодировку файлов.

Кодировка файлов

Откройте индексный файл с помощью Файлового менеджера в Панели управления. Если вы видите нечитаемые символы — он изначально сохранен в неверной кодировке. Измените ее в нижней части окна редактора и нажмите «Сохранить». Перед внесением изменений создайте резервную копию. Также поменять кодировку можно в текстовом редакторе на компьютере.

Если текст в файлах отображается верно, с помощью Файлового менеджера выполните поиск фразы «ini_set» по содержимому. Измените значение этой функции, указав кодировку из декодера после «default_charset»: ini_set(‘default_charset’,’charset‘);

Если поиск не дал результатов, добавьте в файл .htaccess правило: php_value default_charset «charset» здесь charset — название кодировки из декодера.

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

Кодировка базы данных

Перейдите в раздел «Базы данных» → «PhpMyAdmin» Панели управления, кликните на имя базы данных и посмотрите, какие символы содержатся в таблицах. Если вы видите нечитаемый текст, при импорте была выбрана неверная кодировка.

Подключитесь к серверу по SSH и создайте новый дамп, указав кодировку из декодера в параметре default-character-set: [username@server

]$ mysqldump -u username -p dbname —default-character-set=charset > dbname.sql

Откройте дамп в текстовом редакторе, найдите команду SET NAMES и укажите кодировку из декодера: SET NAMES charset После этого загрузите новый дамп в базу данных.

Если текст в базе отображается правильно, нужно найти скрипт для подключения к базе данных. Выполните в Файловом менеджере поиск по фразе: «mysql_conn». После mysql_select_db добавьте функцию: mysql_set_charset(«charset«) здесь charset — кодировка из декодера.

После внесенных изменений не забудьте очистить кеш браузера и проверить работу сайта. Теперь текст отображается верно.

Если решить проблему не удалось, обратитесь в нашу службу поддержки — мы поможем разобраться.

Источник

Как задать кодировку в htaccess

Одна из самых частых проблем сайта — это его кодировка. И несмотря на это многие Web-мастера продолжают утверждать, что браузер сам выбирает кодировку. Действительно, он выбирает кодировку сам, но делает это не всегда правильно. Вот это и есть самая распространнёная ошибка с кодировкой: сайт в кодировке, допустим, UTF-8, а браузер настойчиво выбирает windows-1251. Вот как задать жёстко кодировку через файл htaccess, я расскажу в этой небольшой статье.

Для того, чтобы задать кодировку файла в htaccess достаточно написать в нём всего одну строчку:

Если Вам нужна windows-1251, то тогда так:

Всего одна строчка и теперь браузер, независимо от своего предпочтения, будет выбирать указанную кодировку. Сразу говорю, данный способ — это действительно мощный. Вы должны понимать, что раз браузер неправильно распознаёт кодировку Вашего сайта (игнорируя даже мета-тег «ContentType«), значит, на то есть свои причины, поэтому внимательно проверьте: везде ли всё хорошо отображается.

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

Читайте также:  Не работает отключение чайника

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

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

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

  • BB-код ссылки для форумов (например, можете поставить её в подписи):
  • Комментарии ( 14 ):

    Фух норм инструкция, а то вроде все UTF 8, а браузер кракозябры показывает

    Источник

    Изменение кодировки сайта в файле .htaccess

    Кодировка сайта меняется вручную в том случае, если браузер выбирает неверный вариант кодировки, итогом чего становится появление набора символов, вместо обычного вида веб-страницы. Например, для чтения файлов используется Windows-1251, из-за чего возникают проблемы с ресурсами, на которых используется кодировка UTF-8, которая является стандартной для большинства сайтов.

    Как узнать кодировку сайта

    Посмотреть кодировку сайта легко — достаточно перейти на любую страницу ресурса и нажать правую кнопку мыши (или сочетание клавиш CTRL+U ), чтобы посмотреть исходный код («View page source» или « Просмотр кода страницы »).

    Для поиска нужного мета-тега в коде вызовите функцию поиска сочетанием CTRL+F . Затем в строку поиска необходимо ввести « charset », чтобы отыскать нужное значение.

    Общий способ

    Одной из наиболее часто встречающихся причин считается неправильно прописанный мета-тег content-type :

    Но если после его изменения ничего не меняется, и браузер не считает тег основополагающим, понадобится поменять значение вручную.

    Редактирование файла .htaccess

    Существует несколько способов, как сменить кодировку в файле .htaccess

    На всем сайте

    Изменить кодировку сайта целиком можно через .htaccess — файл конфигурации, отвечающий за настройку работы веб-сервера Apache.

    Принцип редактирования один для всех панелей управления, но для примера рассмотрим одну из них — ISPmanager. Для изменения кодировки через .htaccess в данной панели управления нужно:

      1. Авторизоваться в панели управления в ISPmanager.
      2. Перейти в раздел «Менеджер файлов». Далее перейти в папку «www» и войти в корневую папку (с названием сайта).
      3. Выбрав в списке файл .htaccess, нажать на кнопку «Создать» и в открывшемся меню выбрать «Изменить».
      4. После этого можно редактировать файл самостоятельно.
      5. Для изменения на стандартный вариант UTF-8, нужно добавить строчку:
      1. Внесение изменений необходимо подтвердить, нажав на кнопку «Сохранить».

    Возможно и обратное изменение для которого добавляется:

    В отдельном файле или группе файлов

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

    В результате, директива AddCharset будет конвертировать указанный файл ( file.html ) в заданную кодировку ( UTF-8 ).

    Этого же результата можно достичь, пользуясь директивой ForceType :

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

    При комплексных сценариях, применяющихся к одному документу, придется учесть порядок расположения расширений. Например:

    В указанном правиле файл « file.utf8.html » будет выводиться в кодировке windows-1252, а « file.html.utf8 » — в UTF-8.

    Начни экономить на хостинге сейчас — 14 дней бесплатно!

    Источник

    Установка Битрикс в кодировке UTF8 и проблема с mbstring.func_overload

    Обновили на сервере PHP до версии 5.2.9 и обнаружили, что теперь в .htaccess не работает установка mbstring.func_overload =2
    А вот и описание причины:

    Цитирую — самое важное отсюда:

    It’s not possible to change it in perdir configs anymore. Fix for bug
    #43227 changed this. Apparently Rui forgot to document it..smile:)

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

    UPDATED:
    подошло решение из комментариев. Принудительно включили глобально mbstring.func_overload =2, поставили по умолчанию кодировку 1251, а на нужных сайтах включили через .htaccess utf8.

    Все ошибки пропали, все зеленым цветов в установке, начал устанавливать, все ок и тут на тебе:

    кодировка полетела с этого шага. Попробовал прописать в .htaccess строчку:

    У меня под Linux Ubuntu , такая же петрушка. Проанализировав кодировки инсталера и распакованного битрикса enca-ом выяснил, что при установки кодировка 7bit ASCII и поэтому все инсталер пишет по-русски, а после инсталяции файлы в CP-1251 а в meta теги стоит UTF-8. Вот собственно в чем проблема. Конвертация файлов должна помочь. Еще нужно проверить кодировку БД и таблиц.

    Читайте также:  Не работает спидометр сурф 130

    PS:Конвертация не помогла, точнее она помогла, если открыть файл в gedit , то там вместо кракозябр нормальный русский текст, но вот на сайте почему-то все равно . вместо русского. Подскажите у всех файлы после инсталяции принимают кодировку 1251?

    У меня Виртуальная машина Битрикс 4.3 столкнулся с подобной проблемой на PHP 5.3 и решил ее! 8)

    Писал в тех. поддержку следующее:

    Доброго времени суток, на виртуальной машине Битрикс есть 2 сайта. Требуются следующие настройки:

    Для сайта http://top.seoup.su/
    mbstring.func_overload=0
    mbstring.internal_encoding=utf-8

    Для сайта http://seoup.su/
    mbstring.func_overload=2
    mbstring.internal_encoding=utf-8

    mbstring.func_overload=0

    Этот параметр нельзя настроить из .htaccess, начиная с версии php 5.3

    Сделать разные настройки не получится.

    Нужно выполнить следующие шаги, мне это помогло.

    1. По умолчанию выставить mbstring.func_overload=0 в файле «/etc/php.d/custom/php.ini» если его нет, то создаем его! Внутри пишем

    3. Убираем/закоментим на всякий случай определение в «.htaccess» в папке «/home/bitrix/www»

    Теперь «Проверка системы» проходит без ошибок, и не показывается сообщение при свойствах или копировании компонента

    Источник

    Adddefaultcharset utf 8 htaccess не работает

    Есть папка /var/www/html/my_site. Там лежит никсовская база. Она в цп1251. Сервер по умоляанию работает на кои8. Виндовые клиенты не могут выставить кодировку *в принципе* в своих браузерах. Даже если принудительно выставляют windows1251. Я решил настроить отображение, используя .htaccess.
    Итак:
    В httpd.conf:
    AccessFileName .htaccess

    AllowOverride All

    Помещаю в /var/www/html/my_site .htaccess со след содержимым:
    AddDefaultCharset windows-1251
    Но все равно отображение не работает корректно. Что не так?

    Ответить | Правка | Cообщить модератору

    Оглавление

    • Не работает .htaccess, Асен Тотин, 00:58 , 08-Июн-05, (1)
      • Не работает .htaccess, scum, 16:31 , 14-Июн-05, (2)
      • Не работает .htaccess, GD, 17:02 , 14-Июн-05, (3)
        • Не работает .htaccess, L.I.S., 22:45 , 14-Июн-05, (4)
          • Не работает .htaccess, GD, 12:57 , 15-Июн-05, (5)
            • Не работает .htaccess, L.I.S., 17:25 , 15-Июн-05, (6)
              • Не работает .htaccess, GD, 19:15 , 15-Июн-05, (7)
                • Не работает .htaccess, L.I.S., 21:29 , 15-Июн-05, (8)
                  • Не работает .htaccess, Lucky, 06:52 , 16-Июн-05, (9)
                    • Не работает .htaccess, L.I.S., 12:40 , 16-Июн-05, (10)
                  • Не работает .htaccess, GD, 12:52 , 16-Июн-05, (11)
    • Не работает .htaccess, peyote, 16:02 , 07-Авг-07, ( 12 )
      • Не работает .htaccess, гтлтщцт, 03:09 , 18-Июн-08, ( 13 )
      • Не работает .htaccess, Анониммм, 08:07 , 10-Мрт-16, ( 14 )
      • Не работает .htaccess, Антон, 00:51 , 20-Июл-16, ( 15 )

    Сообщения по теме [Сортировка по времени | RSS]

    Это рботает только на Apache 2 и, кажется, только в случае, если документ сам не указывает charset.

    1. «Не работает .htaccess» + / –
    Сообщение от Асен Тотин on 08-Июн-05, 00:58
    Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

    2. «Не работает .htaccess» + / –
    Сообщение от scum (??) on 14-Июн-05, 16:31

    Самый надежный способ, юзать в HTML коде

    Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

    3. «Не работает .htaccess» + / –
    Сообщение от GD on 14-Июн-05, 17:02

    >Привет,
    >
    >>AddDefaultCharset windows-1251
    >
    >Это рботает только на Apache 2 и, кажется, только в случае, если
    >документ сам не указывает charset.
    >
    >WWell,

    AllowOvveride в apache как настроен?
    Должно быть как минимум FileInfo разрешено

    Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

    4. «Не работает .htaccess» + / –
    Сообщение от L.I.S. (??) on 14-Июн-05, 22:45

    >>Привет,
    >>
    >>>AddDefaultCharset windows-1251
    >>
    >>Это рботает только на Apache 2 и, кажется, только в случае, если
    >>документ сам не указывает charset.
    >>
    >>WWell,
    >
    >неправда ваша
    >
    >AllowOvveride в apache как настроен?
    >Должно быть как минимум FileInfo разрешено

    AllowOvveride All ставил и все равно не пашет.

    Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

    5. «Не работает .htaccess» + / –
    Сообщение от GD on 15-Июн-05, 12:57

    >>>Привет,
    >>>
    >>>>AddDefaultCharset windows-1251
    >>>
    >>>Это рботает только на Apache 2 и, кажется, только в случае, если
    >>>документ сам не указывает charset.
    >>>
    >>>WWell,
    >>
    >>неправда ваша
    >>
    >>AllowOvveride в apache как настроен?
    >>Должно быть как минимум FileInfo разрешено
    >
    >AllowOvveride All ставил и все равно не пашет.

    хм
    версия апача?
    в логах что-нибуть есть?
    права на .htaccess нормальные?
    что за база (perl, php)? может она сама хидер с кодировкой кидает?

    Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

    6. «Не работает .htaccess» + / –
    Сообщение от L.I.S. (??) on 15-Июн-05, 17:25

    >>>>Привет,
    >>>>
    >>>>>AddDefaultCharset windows-1251
    >>>>
    >>>>Это рботает только на Apache 2 и, кажется, только в случае, если
    >>>>документ сам не указывает charset.
    >>>>
    >>>>WWell,
    >>>
    >>>неправда ваша
    >>>
    >>>AllowOvveride в apache как настроен?
    >>>Должно быть как минимум FileInfo разрешено
    >>
    >>AllowOvveride All ставил и все равно не пашет.

    >
    >
    >хм
    >версия апача?
    >в логах что-нибуть есть?
    >права на .htaccess нормальные?
    >что за база (perl, php)? может она сама хидер с кодировкой кидает?
    >

    Версия апача 1.3.31
    В логах ничего
    Права на .htaccess менял вплоть до 777
    База никс с www.nix.ru

    Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

    7. «Не работает .htaccess» + / –
    Сообщение от GD on 15-Июн-05, 19:15

    >>>>>Привет,
    >>>>>
    >>>>>>AddDefaultCharset windows-1251
    >>>>>
    >>>>>Это рботает только на Apache 2 и, кажется, только в случае, если
    >>>>>документ сам не указывает charset.
    >>>>>
    >>>>>WWell,
    >>>>
    >>>>неправда ваша
    >>>>
    >>>>AllowOvveride в apache как настроен?
    >>>>Должно быть как минимум FileInfo разрешено
    >>>
    >>>AllowOvveride All ставил и все равно не пашет.
    >
    >>
    >>
    >>хм
    >>версия апача?
    >>в логах что-нибуть есть?
    >>права на .htaccess нормальные?
    >>что за база (perl, php)? может она сама хидер с кодировкой кидает?
    >>
    >
    >Версия апача 1.3.31
    >В логах ничего
    >Права на .htaccess менял вплоть до 777
    >База никс с www.nix.ru

    ну. даже не знаю.
    что есть такое nix.ru знаю, но искать и тянуть их «овоще»базу нет никакого желания

    проверь чтоб после твоего
    AllowOverride All
    никаких AllowOverride больше не было

    Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

    8. «Не работает .htaccess» + / –
    Сообщение от L.I.S. (??) on 15-Июн-05, 21:29

    >проверь чтоб после твоего
    >AllowOverride All
    >никаких AllowOverride больше не было

    Так у меня AllowOverride All стоит внутри

    Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

    9. «Не работает .htaccess» + / –
    Сообщение от Lucky (??) on 16-Июн-05, 06:52

    >
    >>проверь чтоб после твоего
    >>AllowOverride All
    >>никаких AllowOverride больше не было
    >
    >
    >Так у меня AllowOverride All стоит внутри

    Телнетом погляди какие заголовки возвращаются.

    Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

    10. «Не работает .htaccess» + / –
    Сообщение от L.I.S. (??) on 16-Июн-05, 12:40

    >>
    >>>проверь чтоб после твоего
    >>>AllowOverride All
    >>>никаких AllowOverride больше не было
    >>
    >>
    >>Так у меня AllowOverride All стоит внутри
    >
    >
    >Телнетом погляди какие заголовки возвращаются.

    Блин, если честно, я не в курсе как это сделать. telnet-ом как-то не пользовался никогда, не приходилось.

    Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

    11. «Не работает .htaccess» + / –
    Сообщение от GD on 16-Июн-05, 12:52

    >
    >>проверь чтоб после твоего
    >>AllowOverride All
    >>никаких AllowOverride больше не было
    >
    >
    >Так у меня AllowOverride All стоит внутри

    но если после

    AllowOverride All

    идет

    AllowOverride None

    то видимо произойдет переопределение
    . не уверен, но возможно

    Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

    12 . «Не работает .htaccess» + / –
    Сообщение от peyote on 07-Авг-07, 16:02

    в .htaccess нужно прописать строчку:
    php_flag default_charset windows-1251

    Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

    13 . «Не работает .htaccess» + / –
    Сообщение от гтлтщцт on 18-Июн-08, 03:09

    >в .htaccess нужно прописать строчку:
    >php_flag default_charset windows-1251

    Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

    14 . «Не работает .htaccess» + / –
    Сообщение от Анониммм on 10-Мрт-16, 08:07

    > в .htaccess нужно прописать строчку:
    > php_flag default_charset windows-1251

    или в /etc/php5/apache2/php.ini default_charset=cp-1251

    Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

    15 . «Не работает .htaccess» + / –
    Сообщение от Антон (??) on 20-Июл-16, 00:51

    > в .htaccess нужно прописать строчку:
    > php_flag default_charset windows-1251

    И мне тоже! Спасибо автору за этот пост!
    Перед этим убил часа 4 на поиски решения — безрезультатно.
    Чтобы остальным было проще найти этот ответ, накидаю несколько ключевых фраз для поисковой индексации:
    Знаки вопросов вместо русских букв. Слетает кодировка при переносе на другой хостинг VPS VDS. Не реагирует, не работает AddDefaultCharset. Как добиться вывода в кодировке windows-1251. Shop-Script и знаки вопроса при импорте базы MySQL. Кодировка Shop-Script. Как задать кодировку в htaccess. Кодировка 1251 не ставится. Вопросики на сайте. При переносе сайта сбилась кодировка.

    Источник

    Оцените статью