Здравствуйте, у меня есть сайт на кодировке utf-8(указанно в .htaccess и в meta), так же есть БД кодировка которой utf8_general_ci . Но когда я средством php выгружаю контент из БД, то вместо букв, отображаются знаки вопросов �������. Как решить эту проблему? P.s. в гугле не помогли ответы. --- Добавлено --- Только что, экспериментальным образом нашел вот такую странность: если убрать из htaccess и php файла все приравнивания кодировки к utf-8, то выводимые данные из БД становятся читаемыми, в отличие от всего сайта.
Кодировка скрипта в utf-8, знаю точно, ибо сам её задавал при создании --- Добавлено --- Проблема в том, что когда я убираю все файлы, в которых есть элементы указывающие на кодировку UTF-8, текст из БД выводится как надо, в отличии от текста на сайте --- Добавлено --- Может проблема в том что нужна другая кодировка для БД, возможна такая версия?
Этим ты только указываешь получателю, какая кодировка используется. Реальная кодировка определяется кодировкой файлов и кодировкой ответов от сервера БД. При подключении к БД указываешь, в каком виде нужно получать данные? --- Добавлено --- Используешь что-нибудь вроде mysqli_sеt_charset? --- Добавлено --- Нужно либо сервер БД настраивать на дефолтную отдачу данных в нужной кодировке, либо «принуждать» его к этому при каждом соединении.
К чему вы это? Да, в методе set_charset нужно указывать utf8, потому что MySQL принимает кодировку именно в таком виде. --- Добавлено --- В общем гаданием мне чЁ-то в лом заниматься. Или выкладывайте больше инфы, или отдыхайте.
Дам любую инфу что понадобится, я уже откровенно говоря задрался лазить по интернету. Вот файлы: Код (Text): AddDefaultCharset UTF-8 RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php Это footer.php PHP: </div> <div id="footer"> <div id="downf"> <form id="form"> <input type="text" name="name" placeholder="Ваше имя" required><br> <input type="text" name="phone" placeholder="Ваш телефон" required><br> <textarea name="text" placeholder="Сообщение"></textarea><br> <button>Отправить</button> </form> </div> <div id="downf"> <li><a href="/privat/">Profile</a></li> </div> <div id="downf"> <li><a href="/privat/">Profile</a></li> </div> <div id="downf"> </div> </div> </body> </html> Это index.php PHP: <?php $title = "News"; include("../header.php"); ?> <?php require_once("db.php"); if($connection == false){ echo "Error!"; echo mysqli_connect_errno(); exit(); } $query = mysqli_query($connection, "SELECT * FROM $dbarticles ORDER BY id DESC "); if(mysqli_num_rows($query) == 0){ echo "There are no records!"; } else { while($article = mysqli_fetch_assoc($query)){ echo '<div id="new">'; echo '( '.$article['id'].' ) <a href=page.php?id='.$article['id'].'>'.$article['name'].'</a><br>'; echo $article['text'].'<br>'; echo '</div>'; } } ?> <?php include("../footer.php"); ?> ЭТО header.php PHP: <!DOCTYPE html> <html lang="ru"> <head> <meta charset="utf-8"> <title>738 - <?php print $title; ?></title> <link rel="shortcut icon" type="image/x-icon" href="/img/icon.ico"> <script src="/js/jquery.js"></script> <script src="/js/ajax.js"></script> <link href="style.css" media="screen" rel="stylesheet"> <script type="text/javascript" src="/js/scroll.js"></script> <script type="text/javascript" src="/js/scroll2.js"></script> <script type="text/javascript" src="/js/script.js"></script> <link rel="stylesheet" type="text/css" href="/style.css"> <link rel="stylesheet" type="text/css" href="/fonts/font.css"> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body> <div id="top"> <div class="pic"> <img src="http://kizer-shop.ru/img/5.png" class="pic"> </div> <ul id="navbar"> <li><a href="/">Главная</a></li> <li><a href="/news">Новости</a></li> <li><a href="/merch">Товар</a></li> <li><a href="/g7">G7</a></li> <li><a href="/donate">Донат</a></li> <li><a href="/contacts">Контакты</a></li> </ul> </div> <div id="content"> ВО ВСЕХ файлах кодировка UTF-8, на БД везде кодировка utf8_general_ci
Ну для разнообразия могли бы и на мой вопрос ответить. По поводу set_charset. А то самый интересный в этом плане файл так и не показали. --- Добавлено --- Хардкодить фактические данные при использовании БД как-то некрасиво. Вынесите хотя бы в отдельный файл, если это название всего сайта. --- Добавлено --- Я вам в др. теме давал ссылку на статью, где показано, как нужно оформлять шаблоны. И отделяете их от кода работы с БД. --- Добавлено --- Вообще всю работу с БД выполняйте до вывода "<!DOCTYPE html>". --- Добавлено --- Чистый статик можно не выполнять.
Даже так. Подключение к БД. Ну так используйте. Кстати, я посмотрел ваш сайт. Данные из БД там тянутся в ANSI (Windows-1251)!!! --- Добавлено --- Если не секрет, вы хотя бы студент? Или школьник?
Мне 15, в сфере веб-разработки я месяц. Так, как понять, от куда в БД у меня cp1251? В настройках и БД и таблицы, идет сравнение в utf8_general_ci
Сравнение и кодировка – это разные вещи! Кодировка может быть не только у БД, но и у таблицы и даже столбца! Также см. настройки сервера MySQL. На локалке под Win там может быть прописана и Win-кодировка дефолтной. --- Добавлено --- ОК, можете мне скинуть мыло в личку, чтобы отдельно пообщаться по поводу каркаса и не засорять эту ветку.
База данных Сравнение Действие a245400_1 utf8_general_ci Проверить привилегии Всего: 1 cp1251_general_ci Как можно это изменить?