RSS订阅因帖子内容损坏

我在 Python Discourse 上注意到我对“用户”(重命名为“帮助”)类别的 RSS 订阅已停止工作。在尝试重新建立订阅时,订阅 https://discuss.python.org/c/users/7.rss 会导致无效内容,我的阅读器(Thunderbird)无法加载。它在 W3C 验证时失败:

由于该检查失败,我假设受影响的不仅仅是我。

问题似乎是帖子 https://discuss.python.org/t/beginner-help-with-concatenating-arrays/36226 中存在一个意外字符。在提要中,有问题的子字符串显示为 b'N \\x02x KSQT'(两次出现)。

当然,这不是用户的错,而是 Discourse 允许它通过的错,而长期解决方案在于你们。

那里的管理员(或至少是 CPython 核心开发人员)建议我在这里报告。

3 个赞

这是一个非常奇怪的问题:

PrettyText.format_for_email(p.cooked, p)
=> "\u003cp\u003e你好,我目前正在尝试遵循一篇论文描述的机器学习流程。本质上,我需要创建一个大小为 N x KSDT 的输入矩阵。论文将其描述为:“这里 k、ks、kd 和 ksd 是标签而不是索引,并且所有术语都被理解为具有相同 N x KSQT 大小的矩阵,所以例如 Xk 不是一个 N x K 大小的矩阵,而是具有 N x k 个唯一值复制 KSQ 次的完整大小的 N x KSQT 矩阵”。\u003c/p\u003e\\n\u003cp\u003e目前,我有以下三个 np.arrays:\u003cbr\u003e\\nbias_block: (348, 2, 151), bias_contrast: (348, 5, 151), 和 bias_decision: (348, 2, 151)。\u003cbr\u003e\\n我的理解是,为了组合这三个数组,我需要最终大小为 (348, 20, 20, 20, 151)。但是,我真的很难组合这些数组。有人能帮忙吗?非常感谢。\u003c/p\u003e"

我没有看到那个字符串有什么问题…… N x KSDT 似乎没有什么隐藏的东西。

(请注意,帖子现在已从最新帖子中弹出,因此 RSS 作为副作用已恢复正常工作,但我肯定想解决这个问题。

我假设这是该行出错的地方:

1 个赞

我今天早些时候看了那个帖子。里面有一个 Unicode 十六进制代码,大概是 \u0026#x2610;(\u0026#x2610;)。但那不是确切的代码。今天早上它还显示在帖子的原始内容中(https://discuss.python.org/posts/121311.json)。似乎在那之后被编辑过了。

4 个赞

有问题的字符是 & # x2; 或 ^ B

3 个赞

第一次出现是正常的,但第二次和第三次包含一个 0x02 字节(当我使用 Firefox 从这个 URL 保存并使用 Python 读取文件字节时),就像我在第一个帖子中说的那样。validator.w3.org 给了我足够的上下文来定位行中的第一个 0x02。

U+002610 只是一个方框符号,有些东西会替换它(但在 RSS 中不会)。

我要求修复这个帖子,因为我认为如果不修复,我的订阅将无法正常工作。如果需要,我可以把保存的字节发给你。

1 个赞

根据 RSS 2.0 规范,feed 必须符合 XML 1.0 规范。根据 XML 1.0 规范,有几个控制字符是无效的。

下面的 PR 是解决此问题的第一步:

3 个赞

此主题在 39 小时后自动关闭。不再允许回复。