Технический форум

Технический форум (http://www.tehnari.ru/)
-   Интернет (http://www.tehnari.ru/f177/)
-   -   Какая-то чушь с кодировкой (http://www.tehnari.ru/f177/t62538/)

Бродяга 13.01.2012 18:48

Какая-то чушь с кодировкой
 
Вложений: 1
Здравствуйте :)
Небольшая предыстория: решил заняться (серьёзно заняться) созданием сайта(ов). Дабы испытать свои возможности началделать себе сайт, благо одни хороший человек посоветовал прелестную тематику. "Сляпал". До конца не доделал, увидел в интернете прелестный шаблон зарубежного сайта. Удалил всё своё, "запилил" этот шаблон и начал редактировать его.
Первой и самой сложной задачкой оказалось создание ленты новостей на главную страницу, мучился-мучился, сделал!
Конец предыстории
И тут захотелось посмотреть на свой сайт из другого браузера (я юзаю Google Chrome). Зашёл через Mozila Firefox и обомлел... (скрин, в Опере также, а вот IE отлично всё выводит)
Поменял у всех файлов кодировку на UTF-8. Результат меня поразил... НИКАКОГО РЕЗУЛЬТАТА!
Поменял всю кодировку на Winodws-1251, теперь Хром и IE "неженками притворяются", а Firefox и Opera отрабатывают за них выводя шрифт (скрина к сожалению нет, я по наивности надеялся что со временем изменится... когда этого не произошло поменял кодировку назад (на UTF-8), и опять перекодировать для примера... не очень удобно (много страниц)
В общем, никто не подскажет как заставить все браюзеры отобращать текст "по человечески"? Заранее спасибо :)

p.s. Основной файл "index.php" в кодировке UTF-8. И ещё на Мозиле и Опере не подключается css (на скрине, Яндекс поиск кривой)

AlexZir 13.01.2012 19:16

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

Попробуйте перекодировать все страницы в кодировку UTF-8. И пропишите настройки кодировки в заголовке страницы.

Бродяга 13.01.2012 19:19

Код:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="css/style.css" type="text/css"/>

:tehnari_ru_942:
Страницы уже в UTF-8, а верхние куски "с покон веков"
Вот по верой строке у меня сомнение - "text/html" а страница .php

AlexZir 13.01.2012 19:37

Вот что нарыл на сайте вашмастер.ру
Цитата:

Решение проблемы с кодировкой сайта (↑)

Мы уже заметили, что все тексты на нашем сайте написаны и передаются в браузер посетителю сайта в кодировке "windows-1251". Что же сделать, дабы сервер, на котором размещён наш сайт, передавал браузеру в заголовке правильную информацию о кодировке? Давайте действовать по порядку...

1. Чтобы не зависеть от настроек сервера, на всех страницах сайта прямо в коде HTML нужно, используя мета-тег, явно прописать следующую директиву:

<meta http-equiv="content-type" content="text/html; charset=windows-1251">

Разместить её необходимо на всех страницах, желательно, сразу же после открывающегося тега <head>. Это позволит браузеру автоматически в момент загрузки и интерпретации страницы выбрать правильную кодировку отображения в соответствии с полученной директивой! Одной этой директивы должно быть достаточно для решения нашей проблемы. Но так задумывалось в теории. А на практике, этой директивы не всегда достаточно. В редких случаях, но бывает так, что браузер в качестве кодировки для отображения страницы выбирает не ту, что указана в директиве на самой странице, а ту, что была передана в заголовке от сервера! И если указанная в двух местах информация о кодировке не совпадает, то проблема может остаться.

2. Чтобы сервер отдавал в своём ответе правильную информацию о кодировке, необходимо в корне своего сайта создать файл .htaccess и прописать в нём директиву:

AddDefaultCharset windows-1251

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

Если файл .htaccess уже существует на вашем сервере, то просто добавьте указанную директиву, например, в самом начале. И ни в коем случае не удаляйте без надобности уже существующую в нём информацию!

Вот и всё решение проблемы. Согласитесь, всё это не так сложно?! Зато очень полезно для профилактики всевозможных проблем с пресловутой кодировкой.

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

AlexZir 13.01.2012 19:42

А вот эти php-скрипты удобно использовать для смены кодировки текстов.
Ваш МАСТЕР. Кодировка. Изменение кодировки текста | Делаем правильные сайты

Бродяга 13.01.2012 22:03

Спасибо :) Сейчас попробую :)
Может глупость сморожу: а что лучше(универсальней) utf-8 или windows-1251?:tehnari_ru_942:

Вытащил .htaccess с чьего-то сайта и всё более-менее выровнялось :)
Спасибо большое за ценное указание!

AlexZir 13.01.2012 22:17

UTF-8, однозначно!

Бродяга 13.01.2012 22:26

Понял :) Спасибо :)

p.s.А не подскажете какой "utf8" выбирать в phpmyAdmin для более "хорошего" текста на выходе? Там "utf8_general_ci", "utf_unicode_ci", "utf8_bin" и т.п. (всего я насчитал 22 "штуки")

AlexZir 13.01.2012 22:34

utf_unicode_cyr :))

Бродяга 13.01.2012 22:41

Цитата:

Сообщение от AlexZir (Сообщение 652449)
utf_unicode_cyr :))

Хм.. А такой нету :tehnari_ru_325:
Только utf8_..._ci


Часовой пояс GMT +4, время: 19:30.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.