Вопрос № 94506: Доброе время суток, уважаемые эксперты!
Такая фишка: мой MySQL-сервер настроен на кодировку utf8 (в конфиге utf8 задана как для сервера, так и для клиентских подключений). Но когда я из php-скрипта делаю запрос и получаю данные, не сделав пе...
Вопрос № 94.506
Доброе время суток, уважаемые эксперты!
Такая фишка: мой MySQL-сервер настроен на кодировку utf8 (в конфиге utf8 задана как для сервера, так и для клиентских подключений). Но когда я из php-скрипта делаю запрос и получаю данные, не сделав перед этим mysql_unbuffered_query("SET CHARACTER SET 'utf8';");, данные приходят в вопросительных знаках... Php-скрипт сохранён также в кодировке utf-8.
Отвечает: PVS
Здравствуйте, 5acred Phoenix!
PHP скрипт выполняется в среде сервера и, соответственно, кодировка в системе может отличатся, потому когда Вы что-то делаете он пробует перекодировать и получается глюк.
Ответ отправил: PVS (статус: Специалист)
Ответ отправлен: 09.07.2007, 18:00
Отвечает: Nexus
Здравствуйте, 5acred Phoenix!
Проверь, кодировка таблиц и text полей тоже должна стоять utf8.
Попробуй после установки соединения следующие запросы:
mysql_query("set names utf8");
mysql_query("set character_set_client='utf8'");
mysql_query ("set character_set_results='utf8'");
mysql_query ("set collation_connection='utf8_unicode_ci'");
А вообще, ты уверен, что данные сохранились в таблицу в правильной кодировке? Похоже, что у тебя строка в cp1251 сохранилась как utf, хотя может я и ошибаюсь. Если ты пишешь в базу данные из форм, то страница должна быть также в юникоде, либо конверти строку ф-ей iconv или своей...
Ответ отправил: Nexus (статус: 8-ой класс)
Ответ отправлен: 09.07.2007, 18:03 Оценка за ответ: 4 Комментарий оценки: Дело в том, что когда я делаю запрос mysql_unbuffered_query("SET CHARACTER SET 'utf8';");, данные возвращаются правильно. Просто хотелось бы настроить связку php — mysql так, чтобы не делать лишний запрос.