像í无法从MySQL正确显示的字符

时间:2013-12-17 01:43:46

标签: php mysql apache character-encoding collation

在两台计算机的HTML文件中显示数据库结果时出现问题。

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

SAUL FRANCISCO GARCÃA RODRÃGUEZ

数据库的排序规则为latin1_swedish_ci,表的排序规则为utf8_general_ci

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

SAUL FRANCISCO GARCÍA RODRÍGUEZ

名称列在<select>标签中两个浏览器的语言是英语,两个环境中的Html文件相同,所以我认为它与php.ini的charset或编码有关文件

我尝试更改php.ini中的值,但没有任何变化,我无法在任何地方找到答案。

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

很抱歉,如果细节不是很有用,但我不知道我哪里出错了。

P.S。在两个数据库上,数据从MySQL控制台看起来像这样:

SAUL FRANCISCO GARCÃA RODRÃGUEZ

3 个答案:

答案 0 :(得分:7)

在这种情况下,编辑php.ini对你没什么帮助。

数据库的数据整理是什么让您遇到问题?默认情况下,对于新创建的数据库,大多数MySQL安装设置为latin1_swedish_ci而不是utf8_general_ci

更改数据库的排序规则&amp;再试一次。

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;

或许您可以导出当前数据库,使用此命令创建新数据库&amp;重新导入数据:

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

答案 1 :(得分:2)

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">添加到您的HTML

的头部

答案 2 :(得分:2)

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

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

在HTML文档中,您可以通过将其放在页面的HEAD中,向浏览器指定内容为UTF-8:

<meta charset="UTF-8">