在我公司的 Rails 网站上,我们有一个 Twitter 区域,其中来自我们社交媒体团队的推文通过 rake 任务显示。基本上,rake 任务使用 Twitter gem 定期将任何新推文导入数据库,并从那里显示它们。使用 auto_link 帮助器将推文中的 URL 链接转换为 HTML 链接。
一直运行良好,直到现在。突然之间,链接被破坏,甚至错误地突出显示 URL 链接之前的单词。因此,在应如下所示的示例推文中:“请注意圣路易斯。高温警告延长至八月http://bit.ly/ ...”,八月一词已链接,随后的 URL 本身已损坏,好像在最后一个词和链接之间有什么东西破坏了它......
调查了助手,在数据库中查找推文的文本字段以查看是否有任何奇怪之处,甚至使用 rails 控制台手动拉出推文,但一切看起来都还不错。直到我一直深入到推文正文的十六进制代码中,我才看到......
Please be safe S
t. Louis. Heat w
arning extended
through August.
 http://bit.ly/
r5fXlz #heatpoca
lypse
所以罪魁祸首是 ¬† 被扔进了空间,当我删除罪魁祸首空间并在数据库中手动读取它时,问题就解决了。
唯一的问题是,我不明白为什么要这样导入推文正文,尤其是当它通过 Rails 控制台看起来不错时。由于这是一个较旧的数据库,我注意到它在某些区域仍在使用 latin1 编码,而在其他区域使用 utf8,我确信将所有这些转换为 UTF-8 可以解决它,但它没有。
在被进口之前,我甚至试图在身体上使用卫生助手,但这也不起作用。
还尝试了一个 ruby gsub 来去除 ¬† ,但它没有用。
有没有人对如何解决这个奇怪的问题有任何见解?