我试图在我的脚本中删除一个隐藏的零宽度换行字符(U + FEFF)。它出现的网页是http://cynicode.co.uk(请注意,索引页面已被修改,是目前唯一正常运行的网页)
通过查看页面上的html元素,显示:
关键点是< body >
和< !--5-- >
之间的红点。当它悬停在上面时,表明它是一个\ufeff
字符。问题在于,当我查看脚本时,没有这样的字符存在。
我使用PHP和HTML构建此页面,< !--4-- >
和< !--5-- >
之间的项目包含以下内容。首先,在实际的索引页面上:
<?php
echo "<!--4-->";
echo "<head><meta charset='utf-8' /><link rel='shortcut icon' type='image/ico' href='./images/CyniCode.ico'>
<title>CyniCode :: Index</title>
<meta name='description' content='The Cynic's paradise! Home of Cynical.' />
<meta name='author' content='Cynical' />
<meta name='keywords' content='Cynical;Blog;Code' />
<link type='text/css' rel='stylesheet' href='./css/mystyle.css' />
<link rel='shortcut icon' type='image/ico' href='./images/CyniCode.ico'>
<link href='http://fonts.googleapis.com/css?family=Muli' rel='stylesheet' type='text/css' />
<script type='text/javascript' src='http://static.proofiction.net/jquery/jquery-1.9.1.min.js'></script>
<script type='text/javascript' src='http://static.proofiction.net/jquery/loginwait.js'></script>
<script type='text/javascript' src='http://static.proofiction.net/jquery/googleAnalytics.js'></script>
<script type='text/javascript' src='./http://static.proofiction.net/jquery/jquery.bxslider.js'></script>
<script type='text/javascript' src='./http://static.proofiction.net/jquery/jquery.bxslider.min.js'></script>
<script type='text/javascript' src='https://www.google.com/jsapi'></script>
<script type='text/javascript'><!--
google_ad_client = 'ca-pub-xxxxxxxxxxxx';
/* BiggerNavBox */
google_ad_slot = '3977705372';
google_ad_width = 300;
google_ad_height = 600;
//-->
</script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-xxxxxxxx-1', 'cynicode.co.uk');
ga('send', 'pageview');
</script>
</head>";
require_once './functions/page.php';
这构成了索引页面。引用的page.php脚本是我的作弊,可以快速,干净地设置页面。但是......页面上的两条评论之间存在一点差异。这是两条评论之间的剩余差异。
<?php
echo "<!--5-->";
任何人都可以提供的帮助将非常感谢。所有代码片段都是我脚本中的直接复制和粘贴。
答案 0 :(得分:22)
您的一些.php
文件(可能./functions/page.php
包含Byte Order Mark
。如果您使用的是某些IDE,请检查此文件的编码属性,运气好的话,您就可以将其删除。< / p>
修改如果您使用* nix,Elegant way to search for UTF-8 files with BOM?应该有所帮助。
答案 1 :(得分:11)
以下是类似问题的解决方案:Extra BOM character in HTML invalidating DOCTYPE tag
问题的根源基本上是用UTF8 with BOM
编码的PHP文件,用UTF-8 without BOM
编码它们解决了这个问题。