Создаю страницу в UTF-8, вместо букв кракозябры

Guest2011

Новичок
Создаю страницу в UTF-8, вместо букв кракозябры

Использую денвер3. Написал простейшую веб-страницу в notepad++, сохранил в UTF-8 (без Вом)
при открытии отображаются вместо символов кракозябры
Пошел в Вид>Кодировка там стоит Кирилица(Windows)
в базе данных mysql выставил utf-8(если быть точным, то Сопоставление соединения с MySQL=utf8_general_ci)

гуглил и читал на этом форуме темы по поводу кодировки utf-8. попытался решить так:
добавил в файл .htaccess строку AddDefaultCharset UTF-8, но всё безрезультатно
.htaccess у меня в папке C:\WebServers\home\custom
его местоположение не менял

и попробовал найти файл my.ini, чтобы подправить в секции [mysqld] :
init-connect='SET NAMES cp1251'
, но так и не нашел у себя этот файл


ниже код моей страницы
так и не знаю как избавиться от кракозябров

Код:
<html>
<head> 
<title>Главная</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">

 </head>


<body>
<p>Проверка домена</p><br>

<? 
$db = mysql_connect ("localhost","people","pass");
mysql_select_db ("mybase",$db);
$result=mysql_query("SELECT * FROM lessons2",$db);
#$num=mysql_num_rows($result);
#echo "Уроков в базе - $num;"
 ?>

</body>
</html>
и почему-то тут стоит кодировка сp1251
 

Фанат

oncle terrible
Команда форума
Что выводинтся неправильно - "Проверка домена" или информация из базы?
Если первое, то разбирайся с заголовками. Денвером тут никто не пользуется, структуру его папок не знает. При том, что "положение" файла .htaccess имеет принципиальное значение - он работает только в той папке, в которой лежит.

для работы с базой при коннекте после mysql_select_db ВСЕГДА третьей строчкой пишем mysql_set_charset

-~{}~ 21.08.10 18:55:

и почему-то тут стоит кодировка сp1251
в какой кодировке создал таблицы - такая и стоит.
в принципе, проблемы большой нет, будет работать и так.
Но если хочешь хранить не только кирилицу, то надо поменять на утф
http://phpfaq.ru/charset
 

Guest2011

Новичок
Из базы выводил пока только числовые данные.,- это $num
Неправильно выводится "Проверка домена".

попытался добавить третей строкой mysql_set_charset("utf8");
не помогло

-~{}~ 21.08.10 18:49:

вот это тоже не помогает

mysql_query('SET NAMES utf8');
mysql_query('SET CHARACTER SET utf8');mysql_query('SET COLLATION_CONNECTION="utf8_general_ci"');
 

Guest2011

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

Фанат

oncle terrible
Команда форума
ссылку читал? Нет, судя по всему. инече не было бы этого шедеврального про кирилицу.
про базу данных читай по ссылке.
про остальное - перечитывай мой ответ выше.
отдаваемый сервером HTTP заголовок с кодировкой смотри снифером
 

Guest2011

Новичок
ссылку читал но там ответа не нашел, сейчас читаю повторно
я начинающий поэтому мог чтото и не понять

и пересоздал новую базу данных, чтобы точно было все было в базе выставлено в utf-8


создал новую таблицу


проверил, чтобы везде было utf-8


-~{}~ 21.08.10 21:42:

Автор оригинала: *****
отдаваемый сервером HTTP заголовок с кодировкой смотри снифером
это, если я правильно понимаю,имеется ввиду такой снифер:
Код:
show create table "lessons2"
но в статье не говориться в какое место кода страницы его поставить?
(поставил этот фрагмент в php код - выдает ошибку)
 

Фанат

oncle terrible
Команда форума
нет, неправильно понимаешь.
Кодировка слов "Проверка домена" и "Уроков в базе" НИКАКОГО отношения к базе данных не имеет. Неужели это не очевидно?
Сниффер HTTP. http://phpfaq.ru/na_tanke

Я ОЧЕНЬ надеюсь, что уроки не по РНР.
 

Guest2011

Новичок
установил IEInspector сниффер

загрузил свою страницу и он определил
Content-Type:text/html; charset=windows-1251
подскажите, что делать дальше?

p.s. Уроки не по php . Это просто тестовая страница, чтобы избавиться от иероглифов
 

Guest2011

Новичок
AllowOverride в httpd.conf установлено All

там есть строка
# Denwer: default charset.
#
AddDefaultCharset windows-1251

заменил windows-1251 на utf-8

Заараабоотааааааааало Урррррррааааааааааа

а есть ведь возможность также и в файле .htaccess регулировать кодировку. где всё-же правильнее корректировать её?
ведь насколько понимаю теперь эта кодировка глобальная для всех-всех страниц какие я напишу
а если , допустим, я создаю другой сайт паралельно с этим и в том используется кодировка не utf, а скажем та же кирилица(windows-1251), то как быть в таком случае?
чтобы кодировка у каждого сайта была своя?

наверное, насколько понимаю, в таком случае надо оставить кодировку utf-8 как глобальную, а для сайта в кирилице создать копию .htaccess положить в корневую папку этого сайта и уже там править .htaccess ?

-~{}~ 22.08.10 13:33:

всё что я описал реально работает )))

прописал в .htaccess
AddDefaultCharset WINDOWS-1251

теперь и то и то работаеееет

Спасибо Огромное!

-~{}~ 22.08.10 20:47:

но после рестарта сервера оказалось не все так гладко

второй сайт, тот что в win-1251 (который я создал после решения первоначальной проблемы и которому я добавил в корень .htaccess) показывает при запуске не стартовую страницу, а страницу "Ура заработало".
Причем он её выдает в уникоде.

а та первая страница, что написана в utf-8 работает
теперь проблема стала наоборот

p.s. после того как я сделал рестарт сервера, я открыл посмотреть эти две страницы, ту что в уникоде и ту, что в кирилице и заметил, что та что в уникоде выводится нормально, а в кирилице не выводится. Заглянул в C:\WINDOWS\system32\drivers\etc в файл hosts и заметил, что у всех хостов стоят адреса 127.0.0.1 а у второго, того что в кирилице стоит 127.0.0.2. Я исправил двойку на единицу и подгрузил второй сайт, после чего в броузере увидел вышеописаную ситуацию с надписью "Ура заработало"
 

Фанат

oncle terrible
Команда форума
это уже проблема настройки денвера.
что-то в нем надо поправить, чтобы второй сайт заработал
к кодировкам отнощения не имеет
 

Guest2011

Новичок
т.е. если перенести на реальный хостинг, то скорее всего там этой проблемы не будет?

а где хоть приблизительно подправить в денвере
Вы писали, что "Денвером тут никто не пользуется", но всеже у Вас побольше опыта
 

Фанат

oncle terrible
Команда форума
Нет, я не знаю, как это в ренвере настраивается. Рекомендую адрес в хостс вернуть обратно. Ну или почитать документацию Денвера. "Ура заработало пишет потому, что сайт не сконфигурирован под денвером. Это проблема не кодировки. Это проблема добавления к денверу новых сайтов.

Учиться создавать сайты на денвере надо по его документации.
 

Guest2011

Новичок
А как же тогда создавать без денвера, это просто поставив отдельно все те же компоненты (PHP, mysql, apache поотдельности. ).

По идее это в принципе одно и тоже. Не пойму почему эта проблема не может появиться и в том случае.
 
Сверху