Сильно не пинайте. Пришел я к вам за помощью, расколов n-ый монитор о голову. Кодировка базы, кажется (а мне теперь все только кажется), верна: Код (Text): character_set_client utf8 character_set_connection utf8 character_set_database utf8 character_set_filesystem binary character_set_results utf8 character_set_server utf8 character_set_system utf8 character_sets_dir /usr/share/mysql/charsets/ и: Код (Text): collation_connection utf8_unicode_ci collation_database utf8_unicode_ci collation_server utf8_unicode_ci Код примитивен ибо для пробы. Запись: Код (Text): <?php include ('dbconnect.php'); $clname = "первый клиент"; $clcompany = "компания"; $clperson = "Пупкин Вася"; $cltel = "9058192522"; $clemail = "ya@ya.ru"; $clact = "1"; $sql = 'INSERT INTO clients(clname, clcompany, clperson, cltel, clemail, clact) VALUES("'.$clname.'", "'.$clcompany.'", "'.$clperson.'", "'.$cltel.'", "'.$clemail.'", "'.$clact.'")'; if(!mysql_query($sql)) {echo '<center><p><b>ошибка</b></p></center>';} else {echo '<center><p><b>успех</b></p></center>';} ?> И чтение: Код (Text): <?php include ('dbconnect.php'); $sql="SELECT * FROM clients"; $res=mysql_query($sql); echo 'selected:</br>'; while ($memberinfo=mysql_fetch_array($res)) { echo ' '.$memberinfo["id"].' '.$memberinfo["clname"].' '.$memberinfo["clcompany"].' '.$memberinfo["clperson"].' '.$memberinfo["cltel"].' '.$memberinfo["clemail"].' '.$memberinfo["clact"].' '; print "</br>" ; } ?> В браузере вижу это: В любом клиенте это: Пробовал workbrench, phpmyadmin, valentina. Меня терзают смутные сомнения, что все ЭТО работает не правильно. Именно в базу пишутся "кракозябры", читаются "кракозябры", а потом браузер приводит это в читаемый вид, применяя кодировку поверх. Не? Провел эксперимент - в phpmyadmin (да и в workbrench'e тоже) изменил строку "вручную". Получилось красиво, но в браузере все изменения отобразились ??????????? - вопросиками. Подтвердите, что я остолоп и направьте на верный путь. Спасибо.
а вы проверяли точто устанавливается кодировка такой какой вы ее ставите? у меня было что кодировка оставалась в latin хоть и задавал utf8 Код (Text): string mysqli_character_set_name ( mysqli $link ) Для проверки какая кодировка бд стоит Добавлено спустя 1 минуту 51 секунду: а где в скрипте установлена кодировка?
Current character set is latin1 И что же это, как же это? Добавлено спустя 8 минут 54 секунды: Нигде. Я своим чистым разумом думал, что если сервер-браузер кодировки настроены верно, то нет необходимости каждый раз при запросах указывать кодировку. так?
ты не путай кодировку ответа вебсервера и кодировку соединения клиента mysql с сервером mysql. они не пересекаются никак.
Код (Text): <?php include ('dbconfig.php'); $db = @mysql_connect($db_loc,$db_user,$db_pass); if(!$db) { echo( '<center--><p><b>No server connection</b></p>'); exit(); } if(!@mysql_select_db($db_name,$db)) { echo( '<center><p><b>Base '.$db_name.' unreachable!</b></p></center>'); exit(); } echo( '<center><p><b>Connected to '.$db_name.' db</b></p></center>'); можно указать кодировку один раз здесь? чтоб не указывать каждый раз при запросе?
укажи конечно. только этот твой код также выполняется каждый раз при запросе ))) c'est la vie edited: при каждом http-запросе ))) конечно НЕ нужно задавать кодировку перед каждым mysql_query