php和html、mysql编码问题

来源:互联网 发布:手机led显示屏软件 编辑:程序博客网 时间:2024/05/21 08:01

容易出现乱码的地方有php文件里面 ,数据库里面 存储 的 编码 ,页面显示 ,数据传输


1.在建数据库的时候,尤其是用phpMyAdmin与MYSQL打交道时候,一般都是utf-8,字段为 utf8_general_ci

数据库的设置:

 在my.ini文件中查找:

 [mysql] 

default-character-set = utf8 

[mysqld] 

default-character-set = utf8

 init_connect = 'SET NAMES utf8 ' 全

部设置为utf8 保存,重新启动mysql服务


2.在与数据打交道的时候mysql_query("set names 'utf8'");注意是:utf8,不是 utf-8


3.PHP的文件默认的编码是ANSI ,需要转换为UTF-8 ,至于怎么转换 editplus就有这样的功能,“另存为”的时候有选择编码UTF-8 ,

注意:不能选择:UTF-8 + BOM,如果选择这个了 ,你在处理session的时候就会出现问题,所以一定要注意.还有有的人在 eclipse,Myeclipse,ZendStudio里面开发,eclipse里面默认的是ISO-8859-1,需要在“窗口 ”->“首 选项 ”打开“首选项”窗口,在左侧“常规 ”->“工作空间 ”,在“文 本文件编码 ”里面设置默认的编码为utf-8


4.就是PHP文件里面要说明:如<meta http-equiv="Content-Type" Content="text/html;charset=utf-8">

或者 1. <?php header('Content-Type:text/html;charset=utf-8');?>    


5.还有就是处理中文等双字节的时候也有可能出现乱码,PHP里面可以采用的有iconv,mb_convert_encoding来处理双字节, 其余的可以参考PHP帮助手册 


6.在补充一点(遗漏的一点),在你的程序里面你要知道数据之间的传递也有可能存在编码问题的,但是你又不知道传递过来的数据是采用的什么编码,在 PHP里面提供了方法来处理的,下面是自己写的一个简单方法,可以参考一下 


1. //编码转换 

2.         function display_fileencoding($filename)  

 3.         {   

 4.             if(extension_loaded("mbstring"))    

5.             {    

6.                 $code=mb_detect_encoding($filename);//检测字 符串编码    

7.                 $filename=mb_convert_encoding($filename,"UTF-8",$code);//将编 码$code转换为utf-8编码    

8.                 return $filename;    

9.             }    

10.            else    

11.                die("请检查系统是否正确安装配置mbstring");    

12.        }   

 要确保mbstring在你的php.ini中启用  


7、

截断显示文章标题时,出现乱码或者“?”问号的问题:

一般文章标题很长的时候,会显示一部分标题,会对文章标题进行截断,由于一个UTF-8编码格式的中文字符会占用3个字符宽度,截取标题的时候,有 时会只截取到一个中文字符的1个字符或2字符宽度,没截取完整,将出现乱码或“?”问号的情况,用下面的函数截取标题,就不会有问题:

function?get_brief_str($str,?$max_length)?{? echo?strlen($str)?.?"";? if?(strlen($str)?>?$max_length)?{? $check_num?=?0;? for?($i?=?0;?$i?<?$max_length;?$i++)?{? if?(ord($str[$i])?>?128)? $check_num++;? }?? if?($check_num?%?3?==?0)? $str?=?substr($str,?0,?$max_length)?.?"...";? else? if?($check_num?%?3?==?1)? $str?=?substr($str,?0,?$max_length?+2)?.?"...";? else? if?($check_num?%?3?==?2)? $str?=?substr($str,?0,?$max_length?+1)?.?"...";? }?? return?$str;?} 


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 我高考失利想补习学藉怎么办 本科毕业证上是1寸照片怎么办 老婆父母不给户口本迁户口怎么办 深圳夫妻投靠双方再婚的网上怎么办 老人档案丢了要继承公证怎么办 农民把户口迁入城市后宅基地怎么办 离婚了再婚带孩子在上海上学怎么办 上班几天被公司辞退不发工资怎么办 在单位工作被领导边缘化该怎么办 退休人员户口迁到外地退休金怎么办 招工表填写和实际的有误怎么办 招工时档案年龄有人为改动怎么办 8个月宝贝还不会坐怎么办 朗动导航黑屏过了保修期怎么办 平板突然黑屏开不了机了怎么办 苹果ipad锁屏密码忘了怎么办 公司发资以两张工资表怎么办 面试谈好的工资结果发少了怎么办 老板面试没谈薪资让等电话怎么办 土地局把我的档案弄丢了怎么办 人事关系在医院不去上班怎么办 档案年龄多处涂改无法退休怎么办 个人办理退休原始档案丢了怎么办 在钢厂工作想辞职了怎么办呢 场地合同到期了公司不续签怎么办 应届生没毕业找到工作怎么办入职 公司工资保密同事要看工资条怎么办 考上特岗教师后和老公异地怎么办 档案在无档案保管权限的公司怎么办 辞职了户口迁回农原籍不接收怎么办 当正职直接指挥下级副职领导怎么办 单位申报个税身份证号码填错怎么办 申报个税身份证号码填错了怎么办 办了人事代理联系函商调函怎么办 劳务公司与分包工头算账成怎么办 客户退保业务员己得保险佣金怎么办 投了简历公司打来电话没接到怎么办 跟老板要工资她说过几天怎么办 公路车弯把手小抓不到刹车怎么办 新手骑电动车上路车子一直晃怎么办 不知情收赃东西已经卖了怎么办