师去白

      我的程序人生

  博客园  :: 首页  ::  :: 联系 :: 订阅 订阅  :: 管理

昨天写代码,需要在一个模板中引入其他文件并在页面显示,但是显示后的效果却大出意料,多了一个莫名其妙的字符,导致页面换行,极度的丑阿。以前也遇到这个问题,当时是include 一个头文件,是在刚开始,当时使用ob_clean()将缓存删除解决。但是现在这个任务里面是不能删除缓存(引入的页面在中间显示)。没有办法,跑到phpe.net上面寻求帮助(jingdizhiwa就是我)。如下:

Next OldestNext Newest
作者  请教include文件时出现莫名其妙的字符问题
jingdizhiwa


正式会员


组别: 普通会员
发贴: 10
积分: 0



Posted:2006/03/29 20:22     Find all post by this member Copy post text,only for IE users 添加到PHPMORE知识书签
我现在的环境是windows+appserv2.5.5,因为需要引入写好的模块(html格式),所以要使用include语句
但是莫名其妙的空了一行,导致页面不美观,拷贝源代码放到UltraEdit发现多了一个?
在google中搜索关键字“php include 问题”没有发现解决方法,不知道有没有人遇到这个问题,又是如何解决的。给个链接也行。
hiaha,3xs
aDang


正式会员


组别: 普通会员
发贴: 131
积分: 1



Posted:2006/03/30 09:41     Find all post by this member Copy post text,only for IE users 添加到PHPMORE知识书签
源文件是不是带了BOM的UTF-8格式


aDang @ bbs.freecity.cn since 2001
jingdizhiwa


正式会员


组别: 普通会员
发贴: 10
积分: 0



Posted:2006/03/30 10:53     Find all post by this member Copy post text,only for IE users 添加到PHPMORE知识书签
问题解决了
首先根据aDang的提示,我怀疑是UltraEdit保存时候出现问题,所以使用Zend Studio查看了引用的文件,果然发现前面多了一个字符,删除之后,问题解决。
然后仔细查看了一下UltreEdit的配置,将选项“保存时对所有UTF-8写入UTF-8文件头标记(BOM)”关闭,重启UltraEdit,发现原来显示正确的文件前面都多了一个莫名字符,16进制为EF BB BF,肯定就是这个问题了。

看来以后使用UltraEdit还要小心配置。

问题现在解决了。感谢aDang。另外自己在google上面搜索了有关"BOM utf-8",找到一篇

按標準UTF-8檔案加不加BOM都可以(詳細資料可瀏覽www.unicode.org),因為程式一般都可以依文章內容推算是否UTF-8,不過以UltraEdit為例,有時UTF-8短句是會被錯認為ANSI編碼。加BOM是較保險的做法,而且MS的記事本、IE及Word等當文件儲成UTF-8格式時都是加入BOM的,讓程式開啟時能輕易辨明正確編碼。

UTF-8的BOM是 EFBBBF,因為UltraEdit匯入UTF-8文件後內容會轉做Unicode-LE(所以在Hex模式看到的並非UTF-8文件原本的字碼),上述的EFBBBF當轉成Unicode-LE後便是FFFE(Unicode-LE的BOM),UltraEdit不能辨認這個BOM有理無理自己又加多一個BOM,所以有兩個FFFE出現。

因此,最好的方法就是在UltraEdit內將
Write UTF-
8 BOM header to ALL UTF-8 files when saved
設成OFF,就不會在儲存時又在檔案中加入了BOM

还有几篇文章是有关UTF-8编码的,原文太长,下面给出链接和关键字,以备查询
http://fmddlmyy.home4u.china.com/text6.html (key:谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词)
http://wiki.mambochina.net/index.php/UTF-8%E5%AD%97%E7%AC%A6%E9%9B%86%E5%9F%BA%E7%A1%80(key:UTF-8 字符集基础)
http://www.codeguru.com/Cpp/misc/misc/multi-lingualsupport/article.php/c10451/(key:The Basics of UTF-8)
posted on 2006-03-30 11:11  liuchen  阅读(2924)  评论(1编辑  收藏  举报