XML validator.w3.org总是报告第二个字符错误<! - ?xml version =“1.0”encoding =“UTF-8”? - >

时间:2013-11-19 23:24:17

标签: php xml validation utf-8 rss

W3C验证站点在第一行抱怨问号。这个错误看起来很荒谬,因为它实际上是XML的第二个字符,我直接盯着一个问号。它吐了出来:

Sorry

This feed does not validate.

line 1, column 1: XML parsing error: <unknown>:1:1: not well-formed (invalid token) [help]

    <?xml version="1.0" encoding="UTF-8"?>            
     ^

可能很重要,我尝试删除然后接收:

This feed does not validate.

line 1, column 1: XML parsing error: <unknown>:1:1: not well-formed (invalid token) [help]

    xml version="1.0" encoding="UTF-8"            
     ^

这可以在http://validator.w3.org/feed/check.cgi?url=http%3A%2F%2Fmetaseries.com%2Ffeed_test.php%3Fseries_id%3D3

上看到

似乎验证器不喜欢第二个字符。据我所知,该文档在没有BOM的情况下转换为UTF-8。 Firefox喜欢这个Feed并正确显示它。我不明白验证员告诉我的是什么。

2 个答案:

答案 0 :(得分:2)

您在第一个可见字符前发送两个BOM 。这是不允许的。

Opera的错误信息更好:

  

意外文本(根元素外的非空白文本)

使用十六进制查看器查看源将显示BOM。

答案 1 :(得分:1)

您的页面前面没有一个两个 UTF-8 BOM表。

我做了wget后跟od -c,这就是出现的结果:

0000000 357 273 277 357 273 277   <   ?   x   m   l       v   e   r   s
0000020   i   o   n   =   "   1   .   0   "       e   n   c   o   d   i