Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 13.11.2017
Сообщений: 19

Сломанная кодировка через MySQL

23.11.2018, 00:54. Показов 2146. Ответов 4

Студворк — интернет-сервис помощи студентам
У меня есть вывод на сайт информации автомобиля через php. вывод из phpmyadmin. Во всех файлах есть строки наподобии
Code
1
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Все файлы сохранены в utf-8, на сервере во всех полях, которые имеют сравнение, установлено utf-8_genereal_ci, но на выводе рускоязычного текста выводится бред наподобие Автомат, правый руль. Работаю на Denwer. Подскажите, как исправить, буду очень признателен, сегодня сайт надо сдавать
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="style.css"> 
<title>Поиск</title>
</head>
<body>
 <div class="avto" style="margin-top: 50px">
        <a href="cars/toyota wish 2015.html">
          <img src="../cars/img_tayota_wish/avto1.jpg" width="310px" height="200px" align="left" > 
        </a>     
<?php 
require_once('db.php'); 
function search ($query){ // Обработка поискового запроса
$text = ''; // Переменная для вывода текста
//  Проводим фильтрацию данных
$query = trim($query); //  Обрезаем пробелы и спецсиволы
$query = strip_tags($query); // Удаляем HTML и PHP теги
$query = mysql_real_escape_string($query); // Экранируем специальные символы
if(!empty($query)){ //  Если поисковый запрос не пустой
  if(mb_strlen($query) < 4){ //  Если запрос меньше 4 символов
    $text = '<p>короткий поисковый запрос.</p>';} //  Сообщение об ошибке
  else if(mb_strlen($query) > 128){ // Если более 128 символов
    $text = '<p>длинный поисковый запрос.</p>';} //  Сообщение об ошибке
  else{ // Если всё верно
    $sql = "SELECT * FROM avto WHERE name LIKE '%$query%' OR KPP LIKE '%$query%'";//Формируем строку поискового запроса 
    $result = mysql_query($sql); // И выполняем его
    $num = mysql_num_rows($result); //  Определим колличество найденных совпадений
    if($num > 0){ //  Если совпадения есть
      $row = mysql_fetch_assoc($result); // Получаем ассоциативный массив
      //$text .= '<p>Po vashemy zaprosy  <strong>'.$query.'</strong>'; //И начинаем формировать строку поисковой выдачи
      //$text .= ' naideno '.$num.' sovpadeniu</p>' ; // Показываем количество совпадений
      do { // Динамический вывод всех совпадений
 
        $text .= '<h2>'.$row['price'].'</h2>';
        $text .= '<p>'.nl2br($row['dvigatel']).'</p>';
        $text .= '<p>'.nl2br($row['KPP']).'</p>';
        $text .= '<p>'.nl2br($row['probegrf']).'</p>';
        $text .= '<p>'.nl2br($row['probeg']).'</p>';
      }
      while($row = mysql_fetch_assoc($result));} //  Делаем это пока у нас есть результаты
    else{ //  Если найти совпадение не удалось
      $text = '<p>Po vashmy zaprosy nichego ne naideno.</p>';}}} //  Сообщение о неудаче
  else{ //  Если запрос был пустой
    $text = '<p>Zadan pustou zapros.</p>';} //  Сообщение об ошибке
return $text;} //  Возвращаем сформированную строку поисковой выдачи
//  Сам скрипт обработчик
if(isset($_POST['query'])){ //  Если есть запрос
  $connect = connectDB(); //  Открываем соединение с базой данных
  $search_result = search($_POST['query']); // Определяем поисковый запрос 
  echo $search_result; //  Выводим
  closeDB ($connect);} //  Закрываем соединение с  базой данных
 ?>
 </div>
</body>
</html>
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.11.2018, 00:54
Ответы с готовыми решениями:

Кодировка mysql
У меня появилась проблема с выводом из базы данных. В базу данные заносятся нормально, а на страницу выводится: � На странице...

Кодировка в mysql
Походу совсем изъезженная тема, но... На серве utf-8 (на страницах текст нормальный), а в бд, я добавляю через mysql (просто через...

Кодировка в PHP + MySQL
Вытаскиваю данные из БД, в ней они находятся в кодировке &quot;utf8_general_ci&quot;. Плюс в начале юзаю: header('Content-type: text/html;...

4
Почетный модератор
 Аватар для Humanoid
11559 / 4353 / 453
Регистрация: 12.06.2008
Сообщений: 12,455
23.11.2018, 01:22
Лучший ответ Сообщение было отмечено MAXWAR11 как решение

Решение

Может, в HTTP-заголовке указывается кодировка windows-1251 ? Кодировка, указанная в HTTP-заголовке имеет более высокий приоритет, чем кодировка, указанная в самом HTML-файле.
Можете попробовать в самом начале файла (без пустых строк... именно в самом начале) вставить
PHP
1
2
3
<?php
header('Content-Type: text/html; charset=utf-8');
?>
Если файл сохранён без BOM, то должно заработать. Если это поможет, то надо смотреть, какую кодировку по умолчанию ставит Апач, что бы для всех php так не менять. Скорее всего, надо гуглить на денвер, так как чистый апач у меня сам кодировки не выставляет. Скорее всего, это корявые настройки денвера.
1
133 / 118 / 34
Регистрация: 04.04.2018
Сообщений: 593
23.11.2018, 09:54
В конфиге, после успешного подключения к БД. В файле
PHP
1
require_once('db.php');
PHP
1
2
3
4
5
      mysqli_set_charset($link, 'utf8');     
                      mysqli_query ($link,"set character_set_client='utf8'");
                      mysqli_query ($link,"set character_set_results='utf8'");
                 mysqli_query ($link,"set collation_connection='utf8_general_ci'");
                 mysqli_character_set_name($link);

Не по теме:

Пора это решение закрепить где-нибудь. В месяц по раза два-три людям отвечаю как исправить проблему с кодировкой.

1
 Аватар для Зверушь
461 / 369 / 94
Регистрация: 01.05.2010
Сообщений: 1,761
23.11.2018, 10:33
Цитата Сообщение от MAXWAR11 Посмотреть сообщение
вывод из phpmyadmin.
phpmyadmin - это не база данных и к вашему сайту вообще не имеет отношения. Это удобный графический веб интерфейс для вашей субд.

Цитата Сообщение от MAXWAR11 Посмотреть сообщение
Работаю на Denwer
Denwer устарел. Насколько я помню была похожая проблема. В конфиге денвера (кажется это был апачевский httpd.conf) нужно было поменять параметр кодирвки AddDefaultCharset utf8
Лучше воспользуйтесь OpenServer.

Ну и не забывайте, кодировка всех файлов должна быть в utf8 без bom.
0
0 / 0 / 0
Регистрация: 13.11.2017
Сообщений: 19
23.11.2018, 16:36  [ТС]
спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.11.2018, 16:36
Помогаю со студенческими работами здесь

Неправильная кодировка - PHP и MYSQL
Как избавиться от этого? Помогите плиз. Заранее спасибо.

PHP MYSQL txt кодировка с русскими символами
Хочу заливать в БД mysql информацию из txt файлов содержащих русские символы, но какие бы я кодировки не ставил в итоге либо кракозябры...

Неправильная кодировка через анонимайзер
Не правильно отображается текст при заходе на сайт через анонимайзер на странице php пїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ Кодировка...

Кодировка файла исполняемого через ajax
Всем доброго. Не могу разобраться с кодировкой. Вот такое дело у меня: Делаю запрос из js файлу php на выборку инфы о юзере по его id....

Кодировка mysql и вывод через php
писал уже на форум баз данных. может мне тут помогут. везде стоит кодировка utf-8_general_ci. и в бд и в таблице и в полях. когда смотрю...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru