SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 09.11.2010 22:24:33

staff1k
Участник
Зарегистрирован: 09.11.2010
Сообщений: 3

Банально, но все же.

Здравствуйте.
У меня возникла проблема с кодировкой.
Все таблицы, базы, вообще все кроме system в utf8. Если я в phpmyadmin сам добавлю запись и выведу ее с помощью php на сайт, то все выводится прекрасно(по русски) не без:

Код:

$charset=utf8;
header("Content-Type: text/html; charset=".$charset);

Но когда я с помощью формы:

Код:

<form action="gb.php" accept-charset="utf-8" METHOD="POST"  name="msggb">

Ввожу информацию в базу, то вместо Русских букв вводятся ??? и выводятся соответственно тоже.
С английским текстом работает соответственно без проблем!
Я что только не пробовал, какие только php коды не применял все без толку, но я заметил что если я в gb.php(форма в которую передаются данные) поставлю строку:

Код:

echo ("$POST_[msg]"); //msg - само сообщение;

То в браузере при кодировке utf8 оно пишется по русски !!
По сути оно ломается где-то на пути в базу но у меня на странице стоит:

Код:

mysql_query ("set character_set_client='utf8'");
mysql_query ("set character_set_results='utf8'");
mysql_query ("set collation_connection='utf8_unicod_ci'");

Я уже пол гугла обыскал, может кто сталкивался с подобным и решение простое.

Неактивен

 

#2 09.11.2010 23:14:05

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Банально, но все же.

Не поверите, но FAQ#8 smile

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

Неактивен

 

#3 10.11.2010 13:59:03

staff1k
Участник
Зарегистрирован: 09.11.2010
Сообщений: 3

Re: Банально, но все же.

paulus написал:

Не поверите, но FAQ#8 smile

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

Я же говорю что испробовал 100 и 1 способ, я же не сразу в форм ацепт задал, без него тоже не сработало.
Дак если у меня все в utf8, зачем мне делать set names cp1251; ?!

Неактивен

 

#4 10.11.2010 14:09:20

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Банально, но все же.

Надо делать SET NAMES utf8, разумеется. Просто не отдельными character_set_*,
которые угадать сложно правильные, а одним SET NAMES, который настраивает
всё правильно в 99.99% случаев.

Неактивен

 

#5 10.11.2010 14:54:34

staff1k
Участник
Зарегистрирован: 09.11.2010
Сообщений: 3

Re: Банально, но все же.

paulus написал:

Надо делать SET NAMES utf8, разумеется. Просто не отдельными character_set_*,
которые угадать сложно правильные, а одним SET NAMES, который настраивает
всё правильно в 99.99% случаев.

Дак это я делал давно когда еще просто учился выводить значение из базы.
даже если написать show variables like 'character_set_%'; то там видно что все в utf8.
Из базы выводит в utf8 и из формы в *.php передает в utf8, он на стадии добавления наверно что-то путает !
***
Спасибо я решил проблему, я сначала уперся то что я уже писал set names utf8, но решил добавить это в запрос в начале страницы (mysql_query) и он решил проблему!

Отредактированно staff1k (10.11.2010 14:58:41)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson