@TheCrossCarrier

Вопросы вместо кириллицы при выводе информации из MySQL?

При загрузки информации из бд на страницу получаем вопросы вместо символов. В бд всё отображается корректно при любой кодировке

Я перепробовал всё в гугле - один раз получилось корректно отобразить, но я решил подключить utf8mb4 вместо utf8 и всё опять сломалось. После я и менял на utf8 и utf8mb4 и cp1251 - всё без толку

На локалке всё хорошо работает, проблема возникает на хостинге

За полдня хождения вокруг да около ничего не помогло. Вот результат запроса "SHOW SESSION VARIABLES ":

5ec17e9cdd264960991462.png

Подскажите, пожалуйста, что мне с этим делать, уже горит просто
Хотя бы где ошибку искать, в php (использую pdo подключение) или в phpMyAdmin ковыряться...
  • Вопрос задан
  • 1870 просмотров
Решения вопроса 1
@Roma-625
Программист)
<?php

$db= mysqli_connect("localhost", "root", "", "db");
//Попробуй так:
$huruf= $db->query("SET NAMES 'utf8'");
$huruf2= $db->query("SET CHARACTER SET 'utf8'");
$huruf3= $db->query("SET SESSION collation_connection = 'utf8_general_ci'");
?>
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Sergei_Erjemin
@Sergei_Erjemin
Улыбайся, будь самураем...
Судя по принтскрину, в таблице для разных столбцов используются разные кодировки. Проблема может быть в этом. Не знаю, поможет это в твоем случае, но стоит попробовать:

Сделай дамп базы. Открой его в текстовом редакторе. Глазками посмотри что у тебя в тех полях которые идут умляутами и прочими квадратиками и вопросиками. Попробуй разобраться где какая кодировка образовалась и совпадает ли она с тем, что указано при создании таблиц и полей (вполне подходящий инструмент FAR Manager, в нем можно менять кодировки при просмотре и редактировании. Напиши скрипт, который унифицирует кодировки при создании таблиц и полей, а так же сделает перекодировки значений полей при их заполнении данными. Если данных в табличках не много -- все можно даже руками сделать в текстовом редакторе.

После залей этот исправленный дамп на сервер.
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега РНР
Если знаки вопроса простым текстом, то кодировку надо задавать в DSN, как показано здесь

Если знаки вопроса в ромбиках, то это кодировка страницы в браузере, а не БД.
Задаётся либо через default_charset в php.ini либо тупо
header('Content-Type: text/html; charset=utf-8');
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы