【问题标题】:XML validator.w3.org always reports error on second character <?xml version="1.0" encoding="UTF-8"?>XML validator.w3.org 总是在第二个字符 <?xml version="1.0" encoding="UTF-8"?> 上报告错误
【发布时间】:2013-12-03 18:15:27
【问题描述】:

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 喜欢该提要并正确显示它。我不明白验证者在告诉我什么。

【问题讨论】:

  • Chrome 不喜欢它。 error on line 1 at column 6: XML declaration allowed only at the start of the document

标签: php xml validation utf-8 rss


【解决方案1】:

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

Opera 的错误提示更好:

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

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

【讨论】:

    【解决方案2】:

    您的页面前面不是一个,而是 两个 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
    

    【讨论】:

    • 感谢您提供详细信息。 2 个包含文件吐出来了,所以我对初始页面的检查对我没有任何好处。现在工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-20
    • 2016-06-11
    相关资源
    最近更新 更多