期待大家帮忙,牛X你就来,PHP插入mysql乱码,都设置了,还是不行
PHP插入到mysql中的数据从终端到phpmyadmin浏览都是乱码,大家帮忙分析
环境:LAMP
1.mysql编码设置如下:
mysql> show variables like 'character_set_%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
2. mysql 全局设置如下:
/etc/my.cnf
[client]
default-character-set='utf8'
[mysqld]
default-character-set='utf8'
3.PHP连接编码设置如下:
function db_connect()
{
$result=new mysqli('IP','db','user','passwd');
mysql_query("SET NAMES 'UTF8'");
4. PHP页面编码设置如下:
能设置的都设置了,为什么在phpmyadmin 与终端里浏览还是乱码!!!!!
PS: phpmyadmin 与终端里也设置了编码为UTF8
哪位朋友帮忙解决一下。成分感谢!
------解决方案--------------------
mysql在设置utf8的时候, 使用"utf8", 页面上, 使用utf-8.
乱码的解决需要一步一步的调试/观察
首先, 查看你的页面编码, 在浏览器上看打开你的页面时浏览器使用的编码格式..
然后, 从$_POST, $_GET中打印你提交的数据, 检查前台向后台的传递过程中, 编码有没有出问题
然后, 在向数据库写入之前检查一下..
然后就是确定数据库的编码问题, 这个通常换个确认正确的客户端来向数据库写入, 看数据库的表现..
------解决方案--------------------
页面是UTF-8
MYSQL里是UTF8
注意不要搞错。
另外,网页其实可以不设,只要程序的编码是UTF-8即可。
------解决方案--------------------
然后再用 EditPlus 3另存为utf-8类型.
mysql连接那里:mysql_query('set names utf8');
------解决方案--------------------