网页乱码一直是收集编程高手都头痛的题目,我是一个PHP Web编程的初学者,进修当中也遇到了这个题目,查找了相干的资本,总结以下:
平常的中文编码:gb2312,gbk(前者的一种扩大),这两种编码缺少国际通用性;UTF-8为国际标准编码,平常网页编码运用该编码体式格局;
涌现乱码大部分是因为编码体式格局的不一致致使的,个中主要有四个处所不一致就能够存在这个能够:
1、页面文件的编码体式格局(.html,.php等)
2、 html.head中指定阅读器的编码体式格局
3、MySql数据库传输的编码体式格局
4、Apache字符集
这四个的编码平常须要一致起来,一致为UTF-8更加适宜。以下四点应当注重:
1、PlusEdit这类编辑会辨认文件编码,翻开并保留后编码体式格局坚持稳定 ;而像visual studio 2005、Zend Studio等开发东西会以东西首选项中的字符集翻开并保留,能够转变本来的编码体式格局。
能够本来是utf-8的,zend studio ->东西(首选项编码为gb2312),翻开并保留就变成了gb2312能够会涌现乱码;
2、<meta http-equiv="Content-Type" content="text/html; charset=utf-8">这句话能够强迫请求阅读器以utf-8编码体式格局来检察页面,但有一点须要注重,能够Apache的字符集为非UTF-8,比方GB2312,此时阅读器会优先以服务器(GB2312)的字符集编码翻开,又能够致使乱码。
所以平常能够这么处置惩罚:封闭服务器Apache的字符集AddDefaultCharset off 此时阅读会以页面Head中字符集翻开。
3、PHP平常都与Mysql数据库交互,二者举行数据通讯时,也有一个编码题目,不论增照样查,必需指定通讯编码体式格局(平常与Head中编码体式格局UTF-8一致,不然取出来的数据是以非UTF-8编码的,到页面上显现依旧为乱码;把UTF-8编码的字符经由过程非UTF-8的通讯体式格局传输到数据库同样会失利,我遇到了这个Insert失利题目,愿望人人不要重蹈覆辙,O(∩_∩)O~) 指定通讯体式格局方法:mysql_query('set names utf8'),注重不是utf-8;
4、平常跟数据库建库时的编码没有关系,修正后sql语句实行会有题目,比方前台可视化东西操纵删除数据时会报字符集不符合的毛病,也不须要修正my.ini文件中的编码体式格局,修正后能够致使Mysql没法启动,报1065毛病 。
只需命令行实行mysql客户机程序时增与查没有涌现乱码,数据库的编码体式格局应当是没有题目的,重点须要搜检的是不是是上面三个致使的乱码。
引荐视频教程:PHP视频教程
以上就是php页面阅读涌现笔墨乱码的细致内容,更多请关注ki4网别的相干文章!