parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

Misha v.3 12.03.2015 01:46

и чего вы ожидали?

данные из формы приходят в utf-8.
парсер отдаёт их mysql драйверу как есть (в utf-8).
но опцией ?charset=cp1251 (и mysql_set_charset('cp1251',$db)) вы говорите mysql-ю, что данные приходят в 1251.

mysql вас слушает и перекодирует пришедшие данные из 1251 в utf8 и сохраняет в БД.
очевидно, что это перекодирование средствами mysql-я лишнее и данные при этом перекодировании с большой вероятностью поломаются.

сейчас в БД у вас всё плохо: данные хранятся с лишним перекодированием. надо их достать (dump), перекодировать из utf-8 в 1251 и подложить обратно (для начала лучше загрузить их в другую БД, чтобы потестировать). только после этого можно избавиться от указания ?charset=cp1251 и mysql_set_charset('cp1251',$db);

причём надо разбираться, всё ли данные лишний раз перекодированы или нет. и перекодировать обратно только то, что "кривое".