【问题标题】:Bad encoded chars in RSS fileRSS 文件中的错误编码字符
【发布时间】:2011-04-11 10:14:12
【问题描述】:

我的 RSS http://integralsport.com/rss.php?discussions 不适用于 Netvibes,但可以与其他 RSS 阅读器(例如 Google 的阅读器)很好地兼容。

在 W3 验证器的帮助下,我找到了几个特殊字符 http://validator.w3.org/feed/check.cgi?url=http%3A%2F%2Fintegralsport.com%2Frss.php%3Fdiscussions

如何正确编码它们?我尝试了多种方式(\x90 表示法,直接 str_replace),但它们都不起作用。

【问题讨论】:

  • 你是如何在php中生成xml的?
  • 是的,XML/RSS是由PHP脚本生成的,但是数据来自Mysql数据库,我论坛的用户都是这样的字符。

标签: php encoding rss


【解决方案1】:

您可以尝试将文档转换为 UTF-8 并运行

htmlentities($description, ENT_COMPAT, 'UTF-8');

在输出项目描述时(标题也是如此)

【讨论】:

  • 这并不能解决根本问题。
  • 字符串的 UTF-8 编码没有什么不同
  • 这里主要是htmlentities..如果你有“é”或其他东西,它可能会报告错误..查看这个链接validator.w3.org/feed/docs/warning/BadCharacters.html并仔细阅读它指出“这个错误通常是当实际需要的是 windows-1252" 时,当声明像 iso-8859-1 这样的编码时看到
【解决方案2】:

将文本包装在 CDATA 标记中:

<![CDATA[ Héllo world ]]>

【讨论】:

  • 我怀疑是这个。验证器似乎在抱怨该字符集中的实际无效字符
  • 它没有帮助,因为 RSS 阅读器忽略了整个 CDATA 块
猜你喜欢
  • 2015-11-19
  • 2014-12-25
  • 2011-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多