Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте.
У меня возникла проблема с кодировкой.
Все таблицы, базы, вообще все кроме 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'");
Я уже пол гугла обыскал, может кто сталкивался с подобным и решение простое.
Неактивен
paulus написал:
Не поверите, но FAQ#8
Не пытайтесь менять кодировки руками — браузер пошлет данные в кодировке
страницы, с которой он посылает. Не надо дополнительных ухищрений
Я же говорю что испробовал 100 и 1 способ, я же не сразу в форм ацепт задал, без него тоже не сработало.
Дак если у меня все в utf8, зачем мне делать set names cp1251; ?!
Неактивен
Надо делать SET NAMES utf8, разумеется. Просто не отдельными character_set_*,
которые угадать сложно правильные, а одним SET NAMES, который настраивает
всё правильно в 99.99% случаев.
Неактивен
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)
Неактивен