Здравствуйте, danclax, Вы писали:
D>Всем привет,
D>Столкнулся с такой проблемой. На первый взгляд избитая тема — символы вопросов в БД вместо русских букв. Но ситуация немного другая.
D>В БД использую utf8. Из PHP после подключения отправляю SET NAMES 'utf8'. На всякий случай вот:
D>D>// Установка соединения
D>$link = mysqli_init();
D>if (!$link)
D> die('Failed to init mysqli');
D>$res = @mysqli_real_connect($link, DB_HOST, DB_LOGIN, DB_PASS, DB_NAME);
D>if (!$res)
D> die("Failed to connect to the mysql server: ".mysqli_connect_error());
D>if (!mysqli_query($link, "SET NAMES 'utf8'"))
D> die("Can't execute query: ".mysqli_error($link));
D>
D>Все ок, из PHP отправляю запросы и русский текст в БД сохраняется корректно, а также с отображением на странице никаких проблем. На странице тоже кодировка utf8, и сами скрипты php сохранены как utf8 w/o BOM.
D>Когда я передаю в хранимую процедуру текст в качестве параметра, она пишет его в поле таблицы. И в этом случае:
D>
D>На локальной машине все ОК
D>На хостинге вместо русских символов я вижу знаки вопроса
D>
D>Что можно попробовать здесь? Хотелось бы без лишних наворотов, попроще.
Тип параметра хранимой процедуры???
У вас скорее всего
IN p1 VARCHAR(x)
поменяйте на
IN p1 VARCHAR(x) character set utf8