PHP « Проблема сохранения русского текста в mysql базу
1 ответов
В mysql.cfg или my.cnf(linux) пропиши:
в [mysqld]
default-character-set=cp1251
character-set-server=cp1251
init-connect="SET NAMES cp1251"
skip-character-set-client-handshake
И перезапусти службу\демона mysql
А вообще я бы советовал хранить в utf8
Не знаю, что вы имели в виду под "на стороне сервера прописана кодировка windows-1251" Но если не то же, что и у меня, то попробуйте вот так:
Заставьте браузер принять кодировку сайта как cp1251
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
...
</head>
Хотя было бы замечательно, если бы все уже работали с utf-8, чего и вам советую.
или\или:
- поправить в базе кодировку столбца
- добавить при старте: mysql_query('SET NAMES cp1251');
- - проверить в какой кодировке сохранен php файл
SET NAMES cp1251 не всегда достаточно
Мне помогали в своё время (пока не перешел на utf-8) и помогают сейчас при работе с чужими проектами:
mysql_query("SET character_set_connection='cp1251'");
mysql_query("SET character_set_database='cp1251'");
mysql_query("SET character_set_results='cp1251'");
# mysql_query("SET character_set_server='utf8'");
# mysql_query("SET character_set_system='utf8'");
# mysql_query("SET character_set_client='utf8'");
Обычно все сразу их использовать нет необходимости. Хватает и первых трёх.
Вместо cp1251, естественно, иногда надо прописывать utf8