当前位置:首页 > PHP教程 > php应用 > 列表

PHP页面转UTF-8中文编码乱码的解决办法

发布:smiling 来源: PHP粉丝网  添加日期:2021-06-20 17:09:51 浏览: 评论:0 

这篇文章主要介绍了php中uft-8中文编码乱码的解决办法,需要的朋友可以参考下,对于乱码这个问题php开发者几乎都会有碰到过,我们下面主要是介绍了php文件乱码和页面乱码。

PHP页面转UTF-8编码问题

1.在代码开始出加入一行:

header("Content-Type: text/html;charset=utf-8");

2.PHP文件编码问题

点击编辑器的菜单:“文件”->“另存为”,可以看到当前文件的编码,确保文件编码为:UTF-8,如果是ANSI,需要将编码改成:UTF-8。

3.PHP文件头BOM问题:

PHP文件一定不可以有BOM标签

否则,会出现session不能使用的情况,并有类似的提示:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent

这是因为,在执行session_start() 的时候,整个页面不能有输出,但是当由于前PHP页面存在BOM标签,PHP把这个BOM标签当成是输出了,所以就出错了!

所以PHP页面一定要删除BOM标签!!!

删除这个BOM标签的方法:

1).可以用Dreamweaver打开文件,并重新保存,即可以去除BOM标签!

2).可以用EditPlus打开文件,并在菜单“首选项”->“文件”->"UTF-8标识",设置为:“总是删除签名”,然后保存文件,即可以去除BOM标签!

4.PHP以附件形式保存文件的时候,UTF-8编码问题:

PHP以附件形式保存文件,文件名必须是GB2312编码, 否则,如果文件名中有中文的话,将是显示乱码:

如果你的PHP本身是UTF-8编码格式的文件, 需要将文件名变量由UTF-8转成GB2312:

iconv("UTF-8", "GB2312", "$filename");

利用程序来实例字符截取方法

  1. function utf8_substr($str,$len)  
  2. {  
  3.   for($i=0;$i<$len;$i++)  
  4.   {  
  5.     $temp_str=substr($str,0,1);  
  6.     if(ord($temp_str) > 127){  
  7.       $i++;  
  8.     if($i<$len){  
  9.       $new_str[]=substr($str,0,3);  
  10.       $str=substr($str,3);  
  11.       }  
  12.     }else {  
  13.     $new_str[]=substr($str,0,1);  
  14.     $str=substr($str,1);  
  15.     }  
  16.   }  
  17.   return join($new_str);  
  18. }

Tags: UTF-8中文编码乱码 PHP编码乱码

分享到: