PHP, MySQL, символы отображаются неправильно. - PullRequest
3 голосов
/ 30 июля 2011

У меня есть база данных, в которой есть имена игроков (это статистика для игры), но когда я получаю имена игроков с помощью запроса mysqli, я получаю некоторые странные результаты.

Например, символы «Α † Ω» отображаются как «? ?».

  • Когда я открываю таблицу в phpmyadmin, символы отображаются правильно
  • Тип содержимого html - utf-8 (я даже скопировал мета из phpmyadmin, просто чтобы быть уверенным.)
  • база данных и ее таблицы utf8_general_ci

Что я могу сделать, чтобы правильно отображать эти (и другие) символы?

Ответы [ 4 ]

5 голосов
/ 30 июля 2011

Необходимо установить кодировку соединения в utf8.

Выполнить следующую функцию: http://php.net/manual/en/mysqli.set-charset.php

Или выполнить следующий запрос:

 SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8
3 голосов
/ 16 июля 2018

При получении результата на стороне клиента из базы данных. Вы должны указать о соединении charset. Так что лучше упомянуть кодировку в файле конфигурации mysql. После успешного подключения напишите следующую строку кода:

mysqli_set_charset($con,"utf8"); // Change character set to utf8
1 голос
/ 14 марта 2014

С mysqli вам нужно будет запустить этот код после того, как вы установили соединение:

mysqli_set_charset($conn, "utf8");
0 голосов
/ 30 июля 2011

Вам необходимо установить charaset для подключения с php. Поставьте следующий код после подключения к базе данных.

mysql_query("SET NAMES utf8");

То есть, если вы используете mysql ext.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...