如何在phpMyAdmin中显示UTF-8字符?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

如何在phpMyAdmin中显示UTF-8字符?

保持可爱mmm 2020-05-11 11:57:45 168

我的数据库已正确设置为UTF-8,并且正在处理包含日语字符的数据库。如果我从mysql命令行执行SELECT * ...,我会正确看到日语字符。当将数据从数据库中拉出并显示在网页上时,我可以正确地看到它。

但是,在phpMyAdmin中查看表数据时,我只会看到垃圾文本。即。

ç§ã日本料ç†ãŒå¥½ããããã㣥¥œœ¬æ–™ç†ã...

如何获取phpMyAdmin以日语显示字符?

HTML页面上的字符编码设置为UTF-8。

编辑:

我尝试导出数据库并在geany中打开.sql文件。即使编码设置为UTF-8,字符仍会出现乱码。(但是,对数据库执行mysqldump也会显示乱码)。

为数据库和所有表正确设置了字符集(在文件的任何位置都找不到“拉丁”)

CREATE DATABASE japanese DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 我已经将这些行添加到my.cnf并重新启动了mysql,但是没有任何变化。我正在使用Zend Framework将数据插入数据库。

我将悬赏这个问题,因为我真的很想找出答案。

分享到
取消 提交回答
全部回答(1)
  • 保持可爱mmm
    2020-05-11 17:57:42

    不幸的是,phpMyAdmin是最早与MySQL正确讨论字符集的php应用程序之一。您的问题很可能是由于数据库首先没有存储正确的UTF-8字符串而引起的。

    为了在phpMyAdmin中正确显示字符,必须将数据正确存储在数据库中。但是,将数据库转换为正确的字符集通常会破坏不了解MySQL提供的与字符集相关的功能的Web应用程序。

    请问:MySQL>版本4.1吗?数据库用于什么Web应用程序?phpBB?数据库是从Web应用程序的旧版本还是MySQL的旧版本迁移的?

    我的建议是,如果您使用的网络应用程序太旧且不受支持,请不要兄弟。仅当您确定Web应用程序可以正确读取数据库时,才将数据库转换为实际的UTF-8。

    编辑:

    您的MySQL> 4.1,这意味着它可以识别字符集。数据库的字符集排序规则设置是什么?我很确定您正在使用latin1,这是ASCII的MySQL名称,将“字节”中的UTF-8文本存储到数据库中。

    对于不区分字符集的客户端(即mysql-cli和php-mod-mysql),由于字符以字节为单位与数据库进行传输,因此可以正确显示字符。在phpMyAdmin中,字节被读取并显示为ASCII字符,这就是您似乎显示的垃圾文本。

    几年前(2005年?),在亚洲许多地区,MySQL 4.0过时了无数个小时。有一种标准方法可以处理您的问题和残缺不全的数据:

    备份数据库为 .sql 在支持UTF-8的文本编辑器中打开它,确保它们看起来正确。 查找charset collation latin1_general_ci,替换latin1为utf8。 另存为新的sql文件,请勿覆盖您的备份 导入新文件后,它们现在在phpMyAdmin中将正确显示,并且Web应用程序上的日语将成为问号。那很正常 对于依赖php-mod-mysql的php Web应用,在mysql_query("SET NAMES UTF8");之后插入mysql_connect(),现在问号将消失。 my.ini为mysql-cli 添加以下配置:

    CLIENT SECTION

    [mysql] default-character-set=utf8

    SERVER SECTION

    [mysqld] default-character-set=utf8 有关MySQL上的字符集的更多信息,请参考手册:http : //dev.mysql.com/doc/refman/5.0/en/charset-server.html

    请注意,我假设您的Web应用程序正在使用php-mod-mysql连接到数据库(因此有此mysql_connect()功能),因为php-mod-mysql是我能想到的唯一扩展,直到今天仍会触发问题。

    phpMyAdmin使用php-mod-mysqli连接到MySQL。我从未学习过如何使用它,因为切换到frameworks *来开发我的php项目。我强烈建议您也这样做。

    许多框架,例如CodeIgniter,Zend,都使用mysqli或pdo连接到数据库。mod-mysql函数被认为已过时,从而导致性能和可伸缩性问题。此外,您也不想将项目绑定到特定类型的数据库。来源:stack overflow

    0 0
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

推荐文章