Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL数据库和网站上显示的奇怪字符_Php_Mysql_Special Characters_Character_Collation - Fatal编程技术网

Php MySQL数据库和网站上显示的奇怪字符

Php MySQL数据库和网站上显示的奇怪字符,php,mysql,special-characters,character,collation,Php,Mysql,Special Characters,Character,Collation,这是在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 Server: localhost via TCP/IP Server v

这是在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
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
这是在Windows7的XAMPP上运行的

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
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字符集show UTF-8 Unicode utf8 MySQL连接排序规则为utf8\u general\u ci,表Collaion设置为utf8\u general\u ci,在my index.php中,我设置了:

<meta http-equiv="Content-Type" content="text/html; charset=utf8_general_ci"/>
当我在我的Windows7机器上转到localhost/index.php时,会显示plús 当我访问www.domain.com/index.php时,它从WindowsServer2008R2运行,它显示plÃs

两者都有相同的index.php

我按照本教程设置了我的MySQL for Windows Server:

那么为什么会发生这种情况呢?到目前为止,我知道一切都准备好了

谢谢, F4LLCON

问题解决了


按用户-Dr.Molle

列还可以具有与为服务器/数据库/表指定的值不同的字符集/排序规则

这是一个CREATETABLE语句。 在我的例子中,col name1从数据库utf8继承它的字符集 col name2指定了carset/排序规则

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;

列还可以具有与为服务器/数据库/表指定的值不同的字符集/排序规则

这是一个CREATETABLE语句。 在我的例子中,col name1从数据库utf8继承它的字符集 col name2指定了carset/排序规则

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;
utf8\u general\u ci不是HTTP中使用的已注册字符集

仅在中使用UTF-8

有关可用字符集的列表,请参阅。

utf8\u general\u ci不是用于HTTP的注册字符集

仅在中使用UTF-8


有关可用字符集的列表,请参阅。

您能解释一下这是什么意思吗?数据库、表和字符串列可以有不同的字符集/排序规则。好的,我总是为每一列设置utf8\u general\u ci。奇怪的是,数据库是相同的,但在Windows7localhost/index.php中,meta被设置为utf8\u general\u ci。如果我将index.php的meta设置为UTF8,它将显示pl?s而不是plús,而使用UTF8_general_ci,它将显示plús。在windows server 2008中,我需要将index.php的meta设置为UTF8以显示plús,而不是UTF8_general_ci。这很奇怪,因为数据库是相同的。无论如何,问题解决了。谢谢您能解释一下这是什么意思吗?数据库、表和字符串列可以有不同的字符集/排序规则。好的,我总是为每一列设置utf8\u general\u ci。奇怪的是,数据库是相同的,但在Windows7localhost/index.php中,meta被设置为utf8\u general\u ci。如果我将index.php的meta设置为UTF8,它将显示pl?s而不是plús,而使用UTF8_general_ci,它将显示plús。在windows server 2008中,我需要将index.php的meta设置为UTF8以显示plús,而不是UTF8_general_ci。这很奇怪,因为数据库是相同的。无论如何,问题解决了。谢谢你在读这篇文章之前就这么做了,但无论如何,谢谢这会解决问题,我学到了一个新东西:在读这篇文章之前就这么做了,但是无论如何,谢谢这会解决问题,我学到了一个新东西: