这个坑值得记一笔。用 Excel 维护视频清单再导出 XML,保存时选了 GBK,文件头声明还是 UTF-8。提交后必应提示格式错误,能解析的条目里中文标题全是问号,视频 tab 一条都没显示。

刚开始盯着「标题里含有未转义的 & 和引号」,折腾了半个多小时,排掉了。

这类报错背后常见的原因有几处,逐个排除就行。文件实际编码与 XML 声明不一致;Excel 导出时替换了特殊字符和控制字符;lastmod 用了本地时间格式 不是 ISO 8601。

第一件事是确认文件真实编码

file -i video-sitemap.xml

转成无 BOM 的 UTF-8

iconv -f GBK -t UTF-8 video-sitemap.xml -o video-sitemap-utf8.xml

校验 XML 结构

xmllint --noout video-sitemap-utf8.xml

剩下的就是重新提交校验后的文件

curl -s https://www.example.com/video-sitemap.xml | head -3

这类改动我都写进变更记录,过两周再出问题时能对上号。

我习惯把每一步的执行时间和结果记在一边,后面复盘省事。

改完先别撤,确认这几项。xmllint 无报错,必应后台显示已提交且能解析出中文标题。

手工维护的 XML 最容易在编码上出问题,导出后跑一次校验比反复重传快。监控比日志更早给出信号,事后回看经常能提前半小时发现异常。

作者 9823189