phpMyAdmin 不会在数据库中正确显示或插入 Unicode 字符

Posted

技术标签:

【中文标题】phpMyAdmin 不会在数据库中正确显示或插入 Unicode 字符【英文标题】:phpMyAdmin won't display or insert Unicode characters properly into database 【发布时间】:2015-08-08 19:46:12 【问题描述】:

我正在使用 phpMyAdmin 4.4.4 版和 mysql 5.6(字符集设置为 UTF-8 Unicode)。有问题的表的排序规则设置为utf8-general-ci,所有字段也设置为utf8-general-ci 排序规则。我的 php.ini 文件有default_charset = "UTF-8"

尽管所有三个应用程序都设置了 UTF-8,但在 phpMyAdmin 中查看表格时 unicode 字符会出现乱码。所以,与其看...

Søren

...在 phpMyAdmin 我看到...

Søren

即使它在 phpMyAdmin 中显示为乱码,它在网站上也能正确显示。唯一的问题是 phpMyAdmin。

如果我尝试使用 phpMyAdmin 插入新记录并在文本字段中输入 Søren,它会在 phpMyAdmin 中显示如下...

Søren

那里看起来是正确的,但是,在网页上,它显示如下......

S�ren

ø 字符被替换为黑色菱形内的问号,而不是在网站上显示正确的 unicode 字符。

这到底是怎么回事?如何使 phpMyAdmin 显示并将 unicode 字符正确插入表格而不破坏它们?谢谢!

【问题讨论】:

你试过了吗? ***.com/questions/4777900/… @Fabricator 您指的是所选答案吗?我的 phpMyAdmin 安装中没有名为 /libraries/dbi/mysqli.dbi.lib.php 的文件。 其他得分较高的答案呢? 【参考方案1】:

我的 php.ini 文件有 default_charset = "UTF-8"。

这只影响用于某些 PHP 内置函数的字符集,例如 htmlentities

MySQL 使用自己的字符集来解码您发送给它的内容。这可以使用$mysqli->set_charset('utf8') 设置mysqli,或mysql_set_charset('utf8') 设置已弃用的mysql 模块,或者在PDO 的连接字符串中使用charset=utf8

【讨论】:

以上是关于phpMyAdmin 不会在数据库中正确显示或插入 Unicode 字符的主要内容,如果未能解决你的问题,请参考以下文章

Django-Admin 面板不会显示插入的记录抛出 phpmyadmin?

年份显示不正确

在 phpmyadmin 上插入触发器

无法从代码插入中间表,但是当从 MySQL 中的 phpmyadmin 执行时,它会正确插入

无法删除索引或重命名表 PHPmyadmin

PHP+phpMyAdmin编程插入数据显示中文乱码的问题