MySQl - кодировка
В какой кодировке указывать надо, чтоб достало данные из майкл в русском виде а не знаками вопроса?
Что здесь поменять нужно? ![]() |
Вобще обычно ставится utf8_general_ci
Но вопросики могут быть из-за несоответсвия заявленной на странице кодировки и действительной кодировки текста. Так же проблема может быть в неправильной кодировки соединения с бд и тд... |
Указал как вы написали и всё равно всё знаками вопроса.
Во как я соединяюсь: <?php $server = 'localhost'; //Имя сервера $user = 'xai'; //Логин $password = '12345'; //Пароль $db = 'video'; $table = 'lessons'; //Название таблицы $error_database = '<h2>Произошла ошибка в базе данных,<br/> в ближайшее время она будет устранена!</h2>'; $connect = mysql_connect($server,$user,$password); if(!$connect){ echo $error_database; exit; }; //$connect по какому соединению мы работаем $select = mysql_select_db($db,$connect); if(!$select){ echo $error_database; exit; }; ?> Какую кодировку указывать для поля, которое вывожу? |
После подключения выполните запрос
Код:
SET NAMES utf8 |
Написал так
<?php mysql_query("SET NAMES utf8"); $server = 'localhost'; //Имя сервера $user = 'xai'; //Логин $password = 't37du78ah4'; //Пароль $db = 'video'; $table = 'lessons'; //Название таблицы $error_database = '<h2>Произошла ошибка в базе данных,<br/> в ближайшее время она будет устранена!</h2>'; $connect = mysql_connect($server,$user,$password); if(!$connect){ echo $error_database; exit; }; //$connect по какому соединению мы работаем $select = mysql_select_db($db,$connect); if(!$select){ echo $error_database; exit; }; ?> Стало не знаками вопроса выдавать, а вот такими уже буквами. Случилось то, чего так долго ждали РІ Рунете, РЅРѕ чего РЅРёРєРѕРіРґР° ранее еще РЅРµ было!..РџСЂРѕРёР·РѕС€� �»Рѕ РїРѕ истине эпохальное событие!.. Невероятный, потрясающий подарок всем, кто интересуется заработками РІ Сети!.. |
Во-первых нужно посмотреть сами таблицы ели в них тоже крякозябры, то нужно самому документу задать кодировку и посмотреть чтобы каждая таблица соответствовала при мерно такой строчке:
ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; к примеру: CREATE TABLE `elements` ( `id` int(11) NOT NULL auto_increment, `title` varchar(255) NOT NULL, `name` longtext NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; |
Цитата:
Цитата:
ЗЫ: И чтоже это за эпохальное событие такое? Головастик полез прогать в похапе? |
Цитата:
при смене кодировки таблицы или её строк нужно и саму таблицу перезалить(экспорт импорт), иначе она останется в той кодировке в которой была, несмотря на то что будет стоять utf-8. Если вы работает с ajax то utf-8 важно, если просто выборка и вывод то можно и в cp1251. Важно чтобы кодировка в базе соответствовала кодировке указанной в странице в тегах(для utf-8): <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="Content-Language" content="ru"> А также сами данные были в той же кодировке. Если вы всё проверили, а данные всё ещё не читабельны. смотрите заголовки посылаемые сервером на сервер заголовки устанавливаются либо через apache либо в самом php скрипте: header("Content-type: text/html; charset=utf-8"); |
Цитата:
сначала mysql_connect, mysql_select_db и только потом mysql_query |
Вот полное состояние моей базы, выражены на фото.
У меня есть файл 1.php в нём такой код: Код:
<?php kontent1.php Код:
<div class="center"> Код:
<?php phpmyadmin 5 версии(там хостинг), такие кракозябры вылетают, уже не знаю что делать. ![]() ![]() ![]() |
Цитата:
Вам уже дважды сказали что нужно установить charset=utf-8 заголовок |
Цитата:
Ладно, теперь о деле. 1) сколько тебе твердили и подсказывали раньше так и нет вот этого: mysql_query("SET NAMES нужная кодировка"); после подключения к базе. Это очень критично для mysql. 2) Я смотрю сравнение в самой базе от cp1251 до koi8_r. Кто чудил? 3) не сообщаешь в какой кодировке сами файлы php. |
2) Я смотрю сравнение в самой базе от cp1251 до koi8_r. Кто чудил? Если указывать сравнение другую кодировку тогда сохраняет знаками вопроса. Скажите в какой кодировке сохранять сравнение? 2) mysql_query("SET NAMES нужная кодировка"); То есть вот так писать нужно вы имели ввиду? <?php $server = 'localhost'; //Имя сервера $user = 'xai'; //Логин $password = 't37du78ah4'; //Пароль $db = 'video'; $table = 'lessons'; //Название таблицы $error_database = '<h2>Произошла ошибка в базе данных,<br/> в ближайшее время она будет устранена!</h2>'; $connect = mysql_connect($server,$user,$password); if(!$connect){ echo $error_database; exit; }; //$connect по какому соединению мы работаем $select = mysql_select_db($db,$connect); mysql_query("SET CHARACTER SET 'cp1251'"); if(!$select){ echo $error_database; exit; }; ?> 3) В тех файлах в предыдущем посте что-то изменять нужно ,в каком файле если нужно? |
Golovastik,
Берешь стену, разбегаешься, ... повторять до достижения положительного результата. Если не читаешь ответы, на кой спрашивать? |
Вам предстоит обширное разбирательство в том, что кодировка сайта, базы данных, соединения с БД и дампа БД - совсем разные вещи, и чем они меж собой отличаются.
Ну, а пока небольшой совет: на время, пока Вы не почувствуете себя властелином кодировок, при разработке проекта используйте только utf-8, это сэкономит Вам кучу времени и бесценных в нашей профессии невов. |
а ещё это сэкономит время людям которые пытаются вам помочь.
|
Для теста, создал 1 файл без никаких других файлов, чисто для того чтоб достать одну фразу с базы данных и вывести её на экран, всё равно выдало знаками вопроса.
Вот содержимое файла index.php. Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" http://ipicture.ru/uploads/101031/3uTmbxD35R.jpg http://ipicture.ru/uploads/101031/y5kuN0zHW9.jpg http://ipicture.ru/uploads/101031/X6IV60ImaZ.jpg http://ipicture.ru/uploads/101031/uq1WdzAPN3.jpg http://ipicture.ru/uploads/101031/GVuxFUrlrx.jpg http://ipicture.ru/uploads/101031/hUsU8g4EOJ.jpg |
Golovastik,
Наркоман чёли?, Вам сказали всё должно быть в utf-8 Какого лешего вот это http://ipicture.ru/uploads/101031/hUsU8g4EOJ.jpg в koi8r_bin ? и ещё исправьте: mysql_query("set names utf-8"); //на mysql_query("SET NAMES utf8"); Нельзя же быть настолько невнимательным?! Вам уже давно ответили на ваш вопрос. |
Везде поставил utf8, сработало наконец-то. Вопрос такой.
Почему если не прописать mysql_query("set names utf8"); не будет работать? Будет выдавать знаками вопроса. |
удалено.
|
Часовой пояс GMT +3, время: 22:38. |