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");
利用程序来实例字符截取方法
- function utf8_substr($str,$len)
- {
- for($i=0;$i<$len;$i++)
- {
- $temp_str=substr($str,0,1);
- if(ord($temp_str) > 127){
- $i++;
- if($i<$len){
- $new_str[]=substr($str,0,3);
- $str=substr($str,3);
- }
- }else {
- $new_str[]=substr($str,0,1);
- $str=substr($str,1);
- }
- }
- return join($new_str);
- }
Tags: UTF-8中文编码乱码 PHP编码乱码
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)