Pages
Categories
Archives
-
Recent Posts
Recent Comments
I’m reading
Tags
Blogroll
MyFriends
Meta
-
-
标签归档:中文乱码
phpMyAdmin中的UTF8中文乱码
基本上做过Web开发的朋友都有过和乱码做斗争的经历吧,而写PHP搭配MySQL的绝大多数朋友会选择phpMyAdmin这个工具。那么今天我们来谈谈在phpMyAdmin中可能遇到的一种UTF-8中文乱码的问题。 问题描述:网站采用UTF-8编码,前台浏览正常,在phpMyAdmin里查看中文变成乱码。 一般来说,我们安装的Web服务器软件,例如Apache,默认的编码都不是UTF-8。当我们从以UTF-8编码的页面中的表单输入数据的时候,因为在我们输入的时候这些数据本身是用UTF-8编码的,而当表单提交的时候这些用UTF-8编码的数据会经过数据库的处理后再存入表中,所以它会把这些UTF-8编码的数据以其默认编码存入到数据库中,于是变成了乱码。这些乱码仍然是用UTF-8编码的,只是被数据库的默认编码给弄乱了。这也就可以解释为什么我们在网站的前台读取数据的时候却能够看到正常的中文字符串。 在这种情况下,不管我们在phpMyAdmin中将字段的整理改成utf8_general_ci、utf8_unicode_ci或latin1_swedish_ci等编码都是没用的,看到的只能是乱码而不能读出正常的中文字符串。 如果你想要在phpMyAdmin中也看到正常的中文,下面我提供两种解决方案: 1、更改MySQL的默认编码 1.1、Linux环境下 找到 /etc/my.cnf 只需要对该文件的两个地方做如下修改就可以将MySQL的默认编码改成UTF-8 [mysqld] default-character-set=utf8 [client] default-character-set=utf8 1.2、Windows环境下 如果你使用的是Windows,那么在MySQL的配置文件my.ini里做上述同样的就该即可。 2、通过程序限定MySQL的数据传输编码 在连接数据库时加入如下代码,就可以告知MySQL采用UTF-8编码传输数据了: mysqli_query($dbc, “SET NAMES ‘UTF8′”); 如下图所示 通过如上任意一种修改,你就可以解决在phpMyAdmin里中文显示为乱码的问题啦。