UTF8 и Mysql

velocityzen

Новичок
UTF8 и Mysql

php 5.2 + mysql 5

Сайт и база в utf8; (менять нельзя так как java хочет utf8)

в пхп, mysql_client_encoding () выдает cp1251
Данные в непонятном виде в базе оказываются.

мне надо utf8. где и что поменять?
как изменить client_encoding?

Помогите плиз.
 

velocityzen

Новичок
Ermitazh
нет. в базе все нормально. php получает данные из форм в utf8 а передает в mysql почемуто в cp1251.
а может он и передает в utf8 но mysql принимает их как cp1251

Может есть какой выход, а то в куче скриптов делать конверт.
 

velocityzen

Новичок
Автор оригинала: alpine
velocityzen

Есть. Попробовать вдумчиво почитать вот это 9.4. Connection Character Sets and Collations
Прочитал! но я хочу чтоб пхп отдавал данные в utf8.

и еще на запрос
mysqldump.exe --default-character-set=cp1251 dbname > file.sql
выдает
mysqldump: Character set 'cp1251' is not a compiled character set and is not specified in the 'C:\mysql\\share\charsets\Index.xml' file
это нормально??? и как мне востановить теперь данные?

вот такая конфигурация mysql

mysql> SHOW VARIABLES LIKE 'character_set%';
+--------------------------+------------------------------------------+
| Variable_name | Value |
+--------------------------+------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | cp1251 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql50/share/mysql/charsets/ |
+--------------------------+------------------------------------------+
8 rows in set (0.01 sec)

mysql> SHOW VARIABLES LIKE 'collation%';
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_unicode_ci |
| collation_server | cp1251_general_ci |
+----------------------+-------------------+
3 rows in set (0.02 sec)



character_set_server | cp1251
collation_server | cp1251_general_ci
это правильно?

Проблема всетаки в пхп! но все еще не решена!
 

alpine

Новичок
Прочитал! но я хочу чтоб пхп отдавал данные в utf8.
Ну так и настрой ему переменные как написано.
mysqldump: Character set 'cp1251' is not a compiled character set and is not specified in the 'C:\mysql\\share\charsets\Index.xml' file
это нормально??? и как мне востановить теперь данные?
Вот тут описаны возможные проблемы
http://dev.mysql.com/doc/refman/5.0/en/problems-with-character-sets.html

Ну и вот тебе главная ссылка (ты наверное подумал, что это для лохов тут писали и решил не читать).
Если у вас MySQL 4.1 и любые проблемы с русскими буквами, то загляните вначале сюда!
 

velocityzen

Новичок
прочитал, теперь все понятно.
только патчить libmysql нет возможности.
Тупо только что нельзя в пхп задавать кодировку по умолчанию для общения с mysql.
 
Сверху