Странные символы отображаются в базе данных MySQL и на сайте - PullRequest
1 голос
/ 13 декабря 2011

Это работает на Windows Server 2008 R2

MySQL (phpmyadmin) показывает

Server: localhost via TCP/IP
Server version: 5.5.18
Protocol version: 10
User: -
MySQL charset: UTF-8 Unicode (utf8) 

MySQL connection collation: utf8_general_ci

Это работает на XAMPP в Windows 7

MySQL (phpmyadmin) показывает

Server: localhost via TCP/IP
Server version: 5.1.53-community-log
Protocol version: 10
User: -
MySQL charset: UTF-8 Unicode (utf8)

MySQL connection collation: utf8_general_ci

MySQL charset show UTF-8 Unicode (utf8) Параметры сортировки соединения MySQL: utf8_general_ci, а для таблицы Collaion задано значение utf8_general_ci, и в моем index.php я установил:

<meta http-equiv="Content-Type" content="text/html; charset=utf8_general_ci"/>

Когда я захожу в localhost / index.php на моем компьютере с Windows 7, это показывает plús Когда я захожу на www.domain.com/index.php, который запускается из Windows Server 2008 R2, он показывает pl * º

Оба имеют один и тот же index.php.

Я следовал этому руководству, чтобы настроить MySQL для Windows Server: ВЕБ-САЙТ

Так почему это происходит? Пока я знаю, что все в порядке.

Спасибо, F4LLCON

Проблема решена

utf8_general_ci is not a registered charset for use in HTTP.

Use only UTF-8 in <meta>

По пользователю - Dr.Molle

Ответы [ 2 ]

2 голосов
/ 13 декабря 2011

utf8_general_ci не является зарегистрированной кодировкой для использования в HTTP.

Используйте только UTF-8 в <meta>

См. http://www.iana.org/assignments/character-sets для списка доступных кодировок.

2 голосов
/ 13 декабря 2011

Столбцы также могут иметь набор символов / сопоставление, которые отличаются от значений, указанных для сервера / базы данных / таблицы

Это оператор создания таблицы. col name1 наследует свою кодировку из базы данных (в моем случае utf8) В имени col2 указан carset / collation.

CREATE TABLE `database`.`test` (
  `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  `name1` VARCHAR(45) NOT NULL,
  `name2` VARCHAR(45) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
  PRIMARY KEY (`id`)
)
ENGINE = InnoDB;
...