Гость
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Некоторые символы UFT-8 отображаются знаками вопроса / 5 сообщений из 5, страница 1 из 1
10.02.2019, 07:33
    #39771751
Алексей Смирнов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Некоторые символы UFT-8 отображаются знаками вопроса
Добрый день!
В базе данных 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
10.02.2019, 13:52
    #39771810
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Некоторые символы UFT-8 отображаются знаками вопроса
В принципе, SET NAMES должно быть достаточно. Только почему utf8 используете, если ожидаете данные utf8mb4? В зависимости от версии используемой СУБД utf8 может и не быть алиасом для utf8mb4 (не так давно было обсуждение, на что реально указывает utf8, но сходу не помню подробностей, смотреть надо).

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

set names 'utf8mb4';

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


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