На веб-сайте моей компании Rails у нас есть раздел в Твиттере, где твиты от нашей команды в социальных сетях отображаются в виде грабли.В основном задача rake использует гем Twitter, чтобы регулярно импортировать любые новые твиты в базу данных и отображать их оттуда.URL-ссылки в твите преобразуются в HTML-ссылки с помощью помощника auto_link.
До сих пор работало нормально.Внезапно ссылки не работают и даже неправильно подсвечивают слово прямо перед 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 в другихs, и я был уверен, что преобразование всего этого в UTF-8 исправит это, но это не так.
Я дошел до того, что пытался использовать вспомогательный санитарный помощник на теле, прежде чем импортировать, но этотоже не сработало.
Также попробовал ruby gsub, чтобы убрать ¬ †, но это не сработало.
У кого-нибудь есть понимание того, как решить эту странную проблему?