一尘不染

从MySQL无法正确显示Ã等字符

mysql

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

因此,在一台计算机上它显示的名称是这样的:

SAUL FRANCISCO GARCÃA RODRÃGUEZ

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

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

SAUL FRANCISCO GARCÍA RODRÍGUEZ

名称在<select>标签中列出。两种浏览器的语言是英语,并且Html文件在两种环境下都相同,所以我认为这与php.ini文件的字符集或编码有关

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

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

抱歉,如果详细信息不是很实用,但是我不知道我要去哪里错了。

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

SAUL FRANCISCO GARCÃA RODRÃGUEZ

阅读 244

收藏
2020-05-17

共1个答案

一尘不染

php.ini在这种情况下,编辑无济于事。

数据库的数据整理给您带来了什么问题?默认情况下,大多数MySQL安装集latin1_swedish_ci而不是utf8_general_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
2020-05-17