Unescaping строка в Ruby on Rails - PullRequest
3 голосов
/ 03 апреля 2011

Поиск книг Google дает вывод Что-то вроде этого

Introducing Little Simon's new Baby Snoopy line, featuring Charles Schulz'scharacters as babies. 

Как мне преобразовать это в обычную читаемую строку?

Я пробовал URI.unescape и искал его онлайн, но не смогнайти что-нибудь.Я новичок в Ruby on Rails.

Ответы [ 3 ]

4 голосов
/ 04 апреля 2011

Может быть, вам нужно сообщить Rails, что он безопасен для HTML .....

controller

@str = get_str_from_google_book_search(ie.your.string)

view

<%= @str.html_safe %>
0 голосов
/ 03 апреля 2011

Строка уже является HTML, и вы работаете в Rails, поэтому я не уверен, что вам действительно нужно продолжить ее.Хотя ссылки на числовые символы HTML в строке примера do имеют эквиваленты как ASCII, так и Unicode, что-либо более сложное, например <p>, вызовет проблемы.

Однако для строки примера естьспособ.

Вы можете использовать анализатор HTML для анализа строки как фрагмента.

require 'nokogiri'
s1 = 'How&#39;s life?'
s2 = Nokogiri::HTML.fragment(s1).to_s
puts s2
0 голосов
/ 03 апреля 2011

Вам не нужно избегать этой строки. Следующее работает просто отлично.

irb(main):001:0> s="Introducing Little Simon's new Baby Snoopy line, featuring Charles Schulz'scharacters as babies."
=> "Introducing Little Simon's new Baby Snoopy line, featuring Charles Schulz'scharacters as babies."
irb(main):002:0> s
=> "Introducing Little Simon's new Baby Snoopy line, featuring Charles Schulz'scharacters as babies."

Если у вас есть персонаж, который вам нужно убежать, например, ", вы можете избежать его с помощью \ как:

irb(main):008:0> s = "a\"b"
=> "a\"b"
irb(main):009:0> puts s
a"b
=> nil
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...