Php MySQL数据库和网站上显示的奇怪字符
这是在Windows Server 2008 R2上运行的 MySQL phpmyadmin显示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
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。这很奇怪,因为数据库是相同的。无论如何,问题解决了。谢谢你在读这篇文章之前就这么做了,但无论如何,谢谢这会解决问题,我学到了一个新东西:在读这篇文章之前就这么做了,但是无论如何,谢谢这会解决问题,我学到了一个新东西: