Не английские символы отображаются в виде вопросительных знаков на моей странице PHP - отлично отображаются в базе данных - PullRequest
3 голосов
/ 25 августа 2010

У меня есть таблица базы данных MySQL, заполненная неанглийскими данными.Когда я просматриваю данные в браузере Navicat MySQL, данные отображаются нормально.Однако, когда я запускаю php-скрипт для выбора и отображения данных на веб-странице, вместо этого отображаются вопросительные знаки.Кодировка страницы установлена ​​в utf8, и даже сортировка MySQL установлена ​​в utf8 - что-то не так при выборе и отображении ... помогите.

Ответы [ 2 ]

6 голосов
/ 25 августа 2010

Настройки подключения MySQL могут быть ошибочными. Запустите эту команду MySQL при подключении к базе данных из PHP, прежде чем выполнять какие-либо другие команды SQL:

SET names 'utf8';

Это должно установить кодировку соединения в UTF-8. Как вы говорите, страница и база данных уже в UTF-8 (это также должно означать, что страница отправляет Content-Type: text/html; charset=utf-8); само соединение может по умолчанию иметь другую кодировку: (

3 голосов
/ 25 августа 2010

Кроме того, внутри HTML мы должны написать:

<meta charset="utf-8">

Когда мы создаем базу данных MySQL, мы должны использовать что-то вроде этого:

CREATE DATABASE `base` DEFAULT CHARACTER SET=utf8;

Когда мы создаем таблицы, используйте:

CREATE TABLE `base`.`table` (
`key` int(5) unsigned NOT NULL,
`name` varchar(100),
...
PRIMARY KEY (`key`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

В коде PHP после mysql_connect () и mysql_select_db () используйте:

mysql_query('SET NAMES UTF8');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...