powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Некоторые символы UFT-8 отображаются знаками вопроса
5 сообщений из 5, страница 1 из 1
Некоторые символы UFT-8 отображаются знаками вопроса
    #39771751
Фотография Алексей Смирнов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
В базе данных MySQL строки хранятся в кодировке 'utf8mb4_unicode_ci'. При этом сохраняются любые символы, в том числе и 4-х байтные. Но при выполнении запроса из PHP через библиотеку mysqli 4-байтные символы превращаются в знаки вопроса.

Пробовал вот это:
Код: plsql
1.
2.
3.
4.
set names \'utf8\';
set character_set_client=\'utf8mb4_unicode_ci\';
set character_set_results=\'utf8mb4_unicode_ci\';
set collation_connection=\'utf8mb4_unicode_ci\';



Но не помогает.
'set names "utf8mb4_unicode_ci"; - пробовал, ничего не меняется.

Так же пробовал mysqli::set_charset - тоже ничего не дает.

Так же пробовал все поменять на 'utf8mb4' - тоже не помогает.

Библиотеку PDO использовать не очень хочется, т.к. уже весь проект в mysqli.

Как научить PHP читать из базы правильно?
...
Рейтинг: 0 / 0
Некоторые символы UFT-8 отображаются знаками вопроса
    #39771810
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В принципе, SET NAMES должно быть достаточно. Только почему utf8 используете, если ожидаете данные utf8mb4? В зависимости от версии используемой СУБД utf8 может и не быть алиасом для utf8mb4 (не так давно было обсуждение, на что реально указывает utf8, но сходу не помню подробностей, смотреть надо).

И, надеюсь, проверили, что шрифт для отображения вывода поддерживает 4-байтовые символы.
...
Рейтинг: 0 / 0
Некоторые символы UFT-8 отображаются знаками вопроса
    #39771811
Фотография Алексей Смирнов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle, спасибо большое, помогло)

set names 'utf8mb4';

Я пробовал до этого
set names 'utf8mb4_general_ci';
а 'utf8mb4' не догадался.
...
Рейтинг: 0 / 0
Некоторые символы UFT-8 отображаются знаками вопроса
    #39771921
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
utf8mb4_general_ci - это COLLATION - своего рода, инструкция для СУБД о том, каким образом надлежит сравнивать данные в поле. Например, ci означает игнорировать регистр. К инициализации соединения оно не имеет отношения.
...
Рейтинг: 0 / 0
Некоторые символы UFT-8 отображаются знаками вопроса
    #39775162
Фотография Алексей Смирнов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle, спасибо!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Некоторые символы UFT-8 отображаются знаками вопроса
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]