Ruby on Rails中的Unescaping字符串

时间:2011-04-03 19:31:23

标签: ruby-on-rails string

Google图书搜索输出类似这样的内容

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

如何将其转换为正常的可读字符串?

我尝试了URI.unescape并在线搜索,但找不到任何东西。我是Ruby on Rails的新手。

3 个答案:

答案 0 :(得分:4)

也许你需要告诉Rails它是HTML安全的.....

控制器

@str = get_str_from_google_book_search(ie.your.string)

视图

<%= @str.html_safe %>

答案 1 :(得分:0)

您无需转义该字符串。以下工作正常。

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

答案 2 :(得分:0)

该字符串已经是HTML,而您正在使用Rails,因此我不确定您是否真的需要将其进一步归结。虽然示例字符串 do 中的HTML数字字符引用同时具有ASCII和Unicode等效项,但像<p>这样的任何更复杂的引用都会带来麻烦。

但是,对于您的示例字符串,有一种方法。

您可以使用HTML解析器将字符串解析为片段。

require 'nokogiri'
s1 = 'How&#39;s life?'
s2 = Nokogiri::HTML.fragment(s1).to_s
puts s2