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)
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)