昨天写代码,需要在一个模板中引入其他文件并在页面显示,但是显示后的效果却大出意料,多了一个莫名其妙的字符,导致页面换行,极度的丑阿。以前也遇到这个问题,当时是include 一个头文件,是在刚开始,当时使用ob_clean()将缓存删除解决。但是现在这个任务里面是不能删除缓存(引入的页面在中间显示)。没有办法,跑到phpe.net上面寻求帮助(jingdizhiwa就是我)。如下:
![]() ![]() |
作者 | 请教include文件时出现莫名其妙的字符问题 |
jingdizhiwa 正式会员 ![]() ![]() 组别: 普通会员 发贴: 10 积分: 0 ![]() |
Posted:2006/03/29 20:22 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 我现在的环境是windows+appserv2.5.5,因为需要引入写好的模块(html格式),所以要使用include语句 但是莫名其妙的空了一行,导致页面不美观,拷贝源代码放到UltraEdit发现多了一个? 在google中搜索关键字“php include 问题”没有发现解决方法,不知道有没有人遇到这个问题,又是如何解决的。给个链接也行。 hiaha,3xs |
aDang 正式会员 ![]() ![]() 组别: 普通会员 发贴: 131 积分: 1 ![]() |
Posted:2006/03/30 09:41 ![]() ![]() ![]() ![]() ![]() ![]() ![]() 源文件是不是带了BOM的UTF-8格式 aDang @ bbs.freecity.cn since 2001 |
jingdizhiwa 正式会员 ![]() ![]() 组别: 普通会员 发贴: 10 积分: 0 ![]() |
Posted:2006/03/30 10:53 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 问题解决了 首先根据aDang的提示,我怀疑是UltraEdit保存时候出现问题,所以使用Zend Studio查看了引用的文件,果然发现前面多了一个字符,删除之后,问题解决。 然后仔细查看了一下UltreEdit的配置,将选项“保存时对所有UTF-8写入UTF-8文件头标记(BOM)”关闭,重启UltraEdit,发现原来显示正确的文件前面都多了一个莫名字符,16进制为EF BB BF,肯定就是这个问题了。 看来以后使用UltraEdit还要小心配置。 |
问题现在解决了。感谢aDang。另外自己在google上面搜索了有关"BOM utf-8",找到一篇







还有几篇文章是有关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)