- Как починить кодировку
- Заголовки
- Кодировка файлов
- Кодировка базы данных
- Как задать кодировку в htaccess
- Комментарии ( 14 ):
- Изменение кодировки сайта в файле .htaccess
- Как узнать кодировку сайта
- Общий способ
- Редактирование файла .htaccess
- На всем сайте
- В отдельном файле или группе файлов
- Установка Битрикс в кодировке UTF8 и проблема с mbstring.func_overload
- 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.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
Она выглядит вот так:
Комментарии ( 14 ):
Фух норм инструкция, а то вроде все UTF 8, а браузер кракозябры показывает
Источник
Изменение кодировки сайта в файле .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 дней бесплатно!
Источник
Установка Битрикс в кодировке 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. Вот собственно в чем проблема. Конвертация файлов должна помочь. Еще нужно проверить кодировку БД и таблиц.
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
Этот параметр нельзя настроить из .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
Но все равно отображение не работает корректно. Что не так?
| Оглавление |
|
| Сообщения по теме | [Сортировка по времени | RSS] |
| 1. «Не работает .htaccess» | + / – | |
| Сообщение от Асен Тотин | ||
| Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору | ||
| 2. «Не работает .htaccess» | + / – | |
| Сообщение от scum (??) on 14-Июн-05, 16:31 | ||
| ||
| Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору | ||
| 3. «Не работает .htaccess» | + / – | |
| Сообщение от GD on 14-Июн-05, 17:02 | ||
AllowOvveride в apache как настроен? | ||
| Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору | ||
| 4. «Не работает .htaccess» | + / – | |
| Сообщение от L.I.S. | ||
AllowOvveride All ставил и все равно не пашет. | ||
| Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору | ||
| 5. «Не работает .htaccess» | + / – | |
| Сообщение от GD on 15-Июн-05, 12:57 | ||
хм | ||
| Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору | ||
| 6. «Не работает .htaccess» | + / – | |
| Сообщение от L.I.S. | ||
> Версия апача 1.3.31 | ||
| Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору | ||
| 7. «Не работает .htaccess» | + / – | |
| Сообщение от GD on 15-Июн-05, 19:15 | ||
ну. даже не знаю. проверь чтоб после твоего | ||
| Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору | ||
| 8. «Не работает .htaccess» | + / – | |
| Сообщение от L.I.S. | ||
Так у меня AllowOverride All стоит внутри | ||
| Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору | ||
| 9. «Не работает .htaccess» | + / – | |
| Сообщение от Lucky | ||
Телнетом погляди какие заголовки возвращаются. | ||
| Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору | ||
| 10. «Не работает .htaccess» | + / – | |
| Сообщение от L.I.S. | ||
Блин, если честно, я не в курсе как это сделать. telnet-ом как-то не пользовался никогда, не приходилось. | ||
| Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору | ||
| 11. «Не работает .htaccess» | + / – | |
| Сообщение от GD on 16-Июн-05, 12:52 | ||
но если после AllowOverride All идет AllowOverride None то видимо произойдет переопределение | ||
| Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору | ||
| 12 . «Не работает .htaccess» | + / – | |
| Сообщение от peyote on 07-Авг-07, 16:02 | ||
| ||
| Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору | ||
| 13 . «Не работает .htaccess» | + / – | |
| Сообщение от гтлтщцт on 18-Июн-08, 03:09 | ||
| ||
| Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору | ||
| 14 . «Не работает .htaccess» | + / – | |
| Сообщение от Анониммм on 10-Мрт-16, 08:07 | ||
или в /etc/php5/apache2/php.ini default_charset=cp-1251 | ||
| Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору | ||
| 15 . «Не работает .htaccess» | + / – | |
| Сообщение от Антон (??) on 20-Июл-16, 00:51 | ||
И мне тоже! Спасибо автору за этот пост! Источник | ||