Есть база данных MySql у которой стоит кодировка по умолчанию utf8, на каждую таблицу utf8 и даже на каждый троковый столбец utf8. У меня на локальном сервере все отлично работает, после того как раскатал базу на сервере хостера после инсертов в базе отображаются ??????????????. Перед каждым инсертом выполянется "Set Names utf8". Со странички сабмитися форма с файлом xml, файл тоже в utf8, который парсится и потом кладется в базу построчно, но опять таки налокальном сервере все работает замечательно. Есть идеи?????
Для того чтобы все работало кодировка должна быть правильной и для SELECT тоже. Плюс совпадать с кодировкой, которую ты отдаешь в header() Это покажет настройки базы PHP: <?php mysql_connect($host, $username, $password) || die("Can't connect"); mysql_select_db($dbname) || die("Can't select DB"); mysql_query('SET NAMES UTF8') || die(mysql_error()); $res = mysql_query("SHOW VARIABLES"); if ($res) { echo "<h2>Наши настройки</h2>"; echo "<table>"; while($row=mysql_fetch_assoc($res)) { if (strpos($row['Variable_name'], "character_set") !== false || strpos($row['Variable_name'], "collation") !== false) { echo "<tr>"; foreach($row as $name => $val) { echo "<td>" . $val . "</td>"; } echo "</tr>"; } } echo "</table><hr>"; }
Проблема не в селекте, данные в базу попадают уже вопросиками "??????????????" проблема где-то на MySql сервере хостера, на моем локальном компе все работает превосходно, сорцы соответсвенно одинкавые что у меня что на сервере хостера, базу раскатал скриптом и там везде пописан utf8, но у меня работает нормально, на сервере хостера нет
Есть одна особенность: данные в базу попадают 2-я путями. Первый - со странички и в базе все нормально отображается вычитывается. Второй - импорт из xml-файла который который заливается на сервер через форму с инпутом для файлов. Во втором случае в базу попадают вопросики, хотя добавление проходит через один и тот же метод.
А кодировка XML-файла совпадает с кодировкой страницы? Судя по твоему комментарию - нет. Так что определяй его кодировку и конвертируй. Или наоборот изначально готовь его в нужной кодировке.
Так не бывает Страница например в UTF-8, а файл делал в win-1251 (или наоборот) файл заливаемый через форму не конвертируется ни с того ни с сего. А после, ты сам говоришь, что один и тот же код работает