Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.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_Apache_Character Encoding_Collation - Fatal编程技术网

Php 像Ã这样的字符;无法从MySQL正确显示

Php 像Ã这样的字符;无法从MySQL正确显示,php,mysql,apache,character-encoding,collation,Php,Mysql,Apache,Character Encoding,Collation,在两台计算机上以HTML文件显示数据库结果时,我遇到了一个问题 因此,在一台计算机中,它显示如下名称: SAUL FRANCISCO GARCÃA RODRÃGUEZ 数据库的排序规则为latin1\u-swedish\u-ci,表的排序规则为utf8\u-general\u-ci 在另一台计算机上,它显示如下(我希望它是这样的): 名称列在标记中。两种浏览器的语言都是英语,Html文件在两种环境中都是相同的,因此我认为这与php.ini文件的字符集或编码有关 我曾尝试更改php.ini中的值

在两台计算机上以HTML文件显示数据库结果时,我遇到了一个问题

因此,在一台计算机中,它显示如下名称:

SAUL FRANCISCO GARCÃA RODRÃGUEZ
数据库的排序规则为
latin1\u-swedish\u-ci
,表的排序规则为
utf8\u-general\u-ci

在另一台计算机上,它显示如下(我希望它是这样的):

名称列在
标记中。两种浏览器的语言都是英语,Html文件在两种环境中都是相同的,因此我认为这与php.ini文件的字符集或编码有关

我曾尝试更改
php.ini
中的值,但没有任何更改,我在任何地方都找不到答案

唯一的区别是,在显示结果的地方,我安装了WAMP,在另一台计算机上,我分别安装了Apache、MySQL和PHP

对不起,如果细节不是很详细,但我不知道我错在哪里

另外,在两个数据库上,MySQL控制台中的数据如下所示:

SAUL FRANCISCO GARCÃA RODRÃGUEZ

在这种情况下,编辑
php.ini
对您没有多大帮助

数据库的数据整理给您带来了什么问题?默认情况下,大多数MySQL为新创建的数据库安装set
latin1\u swedish\u ci
,而不是
utf8\u general\u ci

更改数据库的排序规则并重试

ALTER DATABASE [name of your database] CHARACTER SET utf8;
如果这是一个特定的表,则可以按如下方式更改排序规则:

ALTER TABLE [name of your table] CONVERT TO CHARACTER SET utf8;
如果它是表中的特定列:

ALTER TABLE [name of your table] MODIFY [name of your column] [other settings] CHARACTER SET utf8 COLLATE utf8_general_ci;
或者,您可以导出当前数据库,使用以下命令创建新数据库并重新导入数据:

CREATE DATABASE [name of your database] CHARACTER SET utf8 COLLATE utf8_general_ci;
如果您想对机器上的MySQL安装进行永久性的更改,从而产生问题,请点击编辑
my.cnf
。以下内容将整个链设置为UTF-8:

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8

添加到html的头部

您可以设置PHP将内容输出为UTF-8:

header('Content-Type:text/html;charset=utf-8')

在HTML文档中,您可以向浏览器指定其内容为UTF-8,方法是将以下内容放在页面的头部:


您的问题是何时在网页中显示数据?实际列的排序规则是什么?JakeGould-更改数据库有效,编辑my.ini文件对后续数据库有效。不需要改变桌子的字符集。谢谢!很高兴它解决了这个问题!数据库排序和字符集问题会让你发疯。谢谢你的提示。是否可以将my.cnf设置应用于特定数据库?@wiesson谢谢!抱歉,没有。my.cnf中的设置是每个MySQL安装的系统范围设置。
[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8