请教php编码问题
服务器是linux的,网站语言是php,数据库是mysql,发现经常出现乱码。哪位朋友告诉我怎么样能彻底解决中文乱码问题?网站访问者都在国内,网页用dreamweaver...
服务器是linux的,网站语言是php,数据库是mysql,发现经常出现乱码。哪位朋友告诉我怎么样能彻底解决中文乱码问题?网站访问者都在国内,网页用dreamweavercs5设计。
展开
展开全部
简单介绍:
首先你的网站出现乱码问题,是由于编码不统一引起的,在一个网站中有三处编码:数据库编码、php程序编码、网页显示编码。数据库编码:即mysql建数据库时的编码,大多数默认是utf8_general_ci;php程序编码:即连接数据库时设定的编码,mysql_query("set names 'utf8'");也可以是GBK等;网页显示编码:即浏览器显示的编码,可以在html网页中定义,<meta http-equiv="content-type" content="text/html;charset=utf-8" />,也可以在php页面的header(“content-type:text/html;charset=utf-8")函数定义。
原因:
1、数据库编码、php程序编码不一致。这种情况下,你插入到数据库中的就是乱码了,所以显示的是乱码,在数据库中看到的就是乱码。
2、数据库编码、网页编码不一致。这种情况下,你插入到数据库的数据是正常显示的,但从数据库读出并显示到浏览器就是乱码了,因为两者编码不一致,致使编码混乱所致。
3、php程序编码、网页显示编码不一致。这种情况下,你的源数据编码与显示的数据编码不一致,从而使显示乱码,这一点比较好理解,两者从开始就不一致,所以最后显示就不一致,呈现乱码。
解决方法:
避免乱码,要做到”三码合一“,即上述三处编码要统一,举个例子:如果你要用utf-8的编码,那么数据库编码就为:utf8_general_ci;php程序编码就为:mysql_query("set names 'utf8'");,网页显示编码就为:<meta http-equiv="content-type" content="text/html;charset=utf-8" />或者是php页面中的header(“content-type:text/html;charset=utf-8"),这就看你的前台页面是html还是php了。
如果这三码统一了,你打开网页还是乱码,就右键单击网页选中编码项,改为你网页的编码或者是自动检测,要不就在浏览器的工具菜单里改一下编码,刷新一下网页就ok。
首先你的网站出现乱码问题,是由于编码不统一引起的,在一个网站中有三处编码:数据库编码、php程序编码、网页显示编码。数据库编码:即mysql建数据库时的编码,大多数默认是utf8_general_ci;php程序编码:即连接数据库时设定的编码,mysql_query("set names 'utf8'");也可以是GBK等;网页显示编码:即浏览器显示的编码,可以在html网页中定义,<meta http-equiv="content-type" content="text/html;charset=utf-8" />,也可以在php页面的header(“content-type:text/html;charset=utf-8")函数定义。
原因:
1、数据库编码、php程序编码不一致。这种情况下,你插入到数据库中的就是乱码了,所以显示的是乱码,在数据库中看到的就是乱码。
2、数据库编码、网页编码不一致。这种情况下,你插入到数据库的数据是正常显示的,但从数据库读出并显示到浏览器就是乱码了,因为两者编码不一致,致使编码混乱所致。
3、php程序编码、网页显示编码不一致。这种情况下,你的源数据编码与显示的数据编码不一致,从而使显示乱码,这一点比较好理解,两者从开始就不一致,所以最后显示就不一致,呈现乱码。
解决方法:
避免乱码,要做到”三码合一“,即上述三处编码要统一,举个例子:如果你要用utf-8的编码,那么数据库编码就为:utf8_general_ci;php程序编码就为:mysql_query("set names 'utf8'");,网页显示编码就为:<meta http-equiv="content-type" content="text/html;charset=utf-8" />或者是php页面中的header(“content-type:text/html;charset=utf-8"),这就看你的前台页面是html还是php了。
如果这三码统一了,你打开网页还是乱码,就右键单击网页选中编码项,改为你网页的编码或者是自动检测,要不就在浏览器的工具菜单里改一下编码,刷新一下网页就ok。
展开全部
html里面在head表现之间写入:
<meta http-equiv="content-type" content="text/html;charset="utf-8"">
php文件建立时一定要设定为utf8格式
mysql在建立表的时候可以加上charset=utf8
<meta http-equiv="content-type" content="text/html;charset="utf-8"">
php文件建立时一定要设定为utf8格式
mysql在建立表的时候可以加上charset=utf8
追问
网页和数据库编码我会设置,php文件怎么设置编码?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
网页乱码的唯一原因就是编码与解码的问题。如果你的网页编码是utf-8,而打开指定编码不是utf-8的话,就会出现乱码。如果数据库编码是gb2132,而网页编码不是gb2132也会出瑞乱码。句话,乱码,就是编码问题。
解决办法:确保数据编码与网页编码一至。设:数据库编码为utf-8,则要在网页头部加:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
手工完成。
解决办法:确保数据编码与网页编码一至。设:数据库编码为utf-8,则要在网页头部加:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
手工完成。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询