Ситуация такая.
Есть Mysql server 4.1 с базой в кодировке cp1251
Все работает нормально
решил перенести сайт на php 5.3 на другой сервер(база осталась на старом)
на другом сервере mysql клиент 5.5
Теперь при выборке из базы знаки ???????.
php функция mysql_client_encoding показывает кодировку latin1При этом в mysql show create table .... показывает DEFAULT CHARSET=cp1251
Вот конфигурация переменных сервера 4.1
|character_set_client | cp1251 |
| character_set_connection | cp1251 |
| character_set_database | cp1251 |
| character_set_results | cp1251 |
| character_set_server | cp1251 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql/share/mysql/charsets/ |
| collation_connection | cp1251_general_ci |
| collation_database | cp1251_general_ci |
| collation_server | cp1251_general_ci |
При этом, если в php скрипте поставить set names 'cp1251', то все работает нормально, но можно ли обойтись без этих костылей?
Переносил базу на тестовый сервер 5.5 там при таких же настройках все нормально.
Есть у кого-нибудь мысли, как исправить ситуацию, не переписывая скрипт сайта?
Весь интернет уже перечитал.