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

ale*_*oid 2 php mysql apache collation character-encoding

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

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

SAUL FRANCISCO GARCÃA RODRÃGUEZ
Run Code Online (Sandbox Code Playgroud)

数据库latin1_swedish_ci的排序规则和表的排序规则是utf8_general_ci.

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

SAUL FRANCISCO GARCÍA RODRÍGUEZ
Run Code Online (Sandbox Code Playgroud)

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

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

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

对不起,如果细节不是很有用,但我不知道我哪里出错了.

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

SAUL FRANCISCO GARCÃA RODRÃGUEZ
Run Code Online (Sandbox Code Playgroud)

Jak*_*uld 7

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

数据库的数据排序是什么给您带来问题?默认情况下,大多数MySQL安装设置latin1_swedish_ci而不是utf8_general_ci新创建的数据库.

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

ALTER DATABASE [name of your database] CHARACTER SET utf8;
Run Code Online (Sandbox Code Playgroud)

如果这是特定的表,则可以更改排序规则:

ALTER TABLE [name of your table] CONVERT TO CHARACTER SET utf8;
Run Code Online (Sandbox Code Playgroud)

如果它是表中的特定列:

ALTER TABLE [name of your table] MODIFY [name of your column] [other settings] CHARACTER SET utf8 COLLATE utf8_general_ci;
Run Code Online (Sandbox Code Playgroud)

或者您可以导出当前数据库,使用此命令创建新数据库并重新导入数据:

CREATE DATABASE [name of your database] CHARACTER SET utf8 COLLATE utf8_general_ci;
Run Code Online (Sandbox Code Playgroud)

如果您想在计算机上对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
Run Code Online (Sandbox Code Playgroud)