(Извините, если новый вопрос ... Я провел немало исследований, честно ...)
Я пишу код на Ruby on Rails для разбора RSS / ATOM каналов. Мой код помешан на надоедливом символе «£».
Я пытался нормализовать поля описания и заголовка каналов, прежде чем делать что-либо еще:
descr = self.description.mb_chars.normalize(:kc)
Однако, когда он попадает в строку с символом '£', я предполагаю, что mb_chars обнаруживает проблему и возвращает обычный объект Ruby String. Я получаю ошибку:
undefined method `normalize' for #<String:0x5ef8490>
Так, как лучше всего подготовить эти строки для вставки в базу данных? (Мне нужно также выполнить кучу обработок строк на них)
Моя проблема усугубляется тем, что я не знаю формат фида, который я обрабатываю. Например, мне повезло со следующей строкой:
descr = Iconv.new('UTF-8//IGNORE', 'UTF-8').iconv descr
Однако, когда он встречает '£', он просто обрезает все после этой точки.
Когда я отображаю символ «£» с помощью функции String.inspect, он отображается как «\ 243». Если бы метод «правильно» не работал с этим символом, я был бы достаточно счастлив заменить его на другое значение (например, «GBP»). Так что помощь с этим кодом была бы признательна.
Фид в вопросе http://www.dailymail.co.uk/sport/football/index.rss