MySQL не возвращает правильный знак фунта

avatar
Simon Maltby
8 апреля 2018 в 05:09
90
1
0

Я использую WAMP 3.0.6 с MySQL 5.7.14. ВСЕ использует набор символов UFT-8.

У меня есть данные в поле "1£1" (то есть 1 (фунт) 1).

Я проверил сервер (мой собственный), и шестнадцатеричное значение поля: 31 C2 A3 31. Это правильно.

Я запускаю запрос локально, и он возвращает правильные данные с C2 A3 в качестве знака фунта стерлингов.

Я запускаю запрос в PHP, и он возвращает только A3, шестнадцатеричный код которого равен 31 A3 31. В результате знак фунта превращается в черный вопросительный знак.

Если я запускаю пакет эха ("C*",194,163); в PHP я получаю правильный знак фунта.

Итак, чтобы уточнить: MySQL содержит правильные данные. Запрос на сервер возвращает правильные данные. PHP через веб-страницу будет отображать правильный знак фунта стерлингов из шестнадцатеричного числа. php.ini настроен для UFT-8. База данных MySQL настроена для UFT-8. HTML настроен для UFT-8. PHP установлен для UFT-8. Запрос PHP НЕ получает правильные данные.

У кого-нибудь есть идеи? У меня все кончено.

Источник
user9487972
8 апреля 2018 в 05:36
0

Возможный дубликат UTF-8 на всем протяжении

Ответы (1)

avatar
Simon Maltby
8 апреля 2018 в 05:23
0

Я нашел ответ:

Мне нужно было указать $mysqli->set_charset("utf8"); в начале кода, по-видимому, чтобы указать, что соединение также должно быть в наборе символов UTF-8.

$mysqli — это строка, содержащая данные "new mysqli()".