欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

常见php与mysql中文乱码问题解决办法

程序员文章站 2024-03-01 08:31:16
乱码问题1:用phpmyadmin操作mysql数据库汉字显示正常,但用php网页显示mysql数据时所有汉字都变成了?号。 症状:用phpmyadmin输入汉字...

乱码问题1:用phpmyadmin操作mysql数据库汉字显示正常,但用php网页显示mysql数据时所有汉字都变成了?号。

症状:用phpmyadmin输入汉字正常,但当php网页显示mysql数据时汉字就变成了?号,并且有多少个汉字就有多少个?号。
原因:没有在php网页中用代码告诉mysql该以什么字符集输出汉字。
解决方法:

1.网页文件head设置编码<meta http-equiv=”content-type” content=”text/html; charset=utf-8″ />
2.php页面在保存的时候使用utf-8编码保存,可以用记事本或convertz802转换文件
3.在mysql中新建数据库的时候数据库 选择utf-8编码既字符集 设定为 utf-8_unicode_ci(unicode (多语言), 不区分大小写),
库里面 表table的 整理 设置为 utf-8_general_ci
表里面的每个字段的 整理 都设置为 utf-8_general_ci
4.在php连接数据库的时候,也就是mysql_connect()之后加入

//设置数据的字符集utf-8 
mysql_query("set names 'utf8' ");
mysql_query("set character_set_client=utf8");
mysql_query("set character_set_results=utf8");


注意是utf8,不是utf-8 。

如果你的网页编码是gb2312,那就是 set names gb2312。但编辑员强烈推荐网页编码、mysql数据表字符集、phpmyadmin都统一使用utf-8。

以上四点即可实现全站utf-8编码,而且在数据库中也不会有中文乱码。

乱码问题2:用phpmyadmin输入数据时发生错误,不让输入或出现乱码
解决方法:这是设置问题。请安装最新版phpmyadmin或appserv,打开phpmyadmin,mysql 字符集: utf-8 unicode (utf8); mysql 连接校对应该为utf8_unicode_ci;创建新的数据库时整理一栏请也选成utf8_unicode_ci。网页字符集也最好选用utf-8。utf-8是国际标准编码,是趋势。

乱码问题3: 在本机开发好的mysql数据表,在本机测试一切正常,但用网站空间商提供的phpmyadmin上传时却出现问题,上传失败。尤其是使用国外php空间。 

解决方法:首先查看网站空间商提供的phpmyadmin字符集设定,确定自己所建数据表与服务商的是同一编码。在国外mysql是不支持gb2312的,甚至最新版的apache也不支持gb2312。如果是因为编码不统一,可以重建数据表,当然是用国际标准的utf8。