背景:我希望解码包含HTML实体的字符串 - 即“c#”应转换为“c%23”。
我发现通常会推荐HTMLEntities项目,但我也发现了一个更简单的解决方案:使用CGI.escape(*string*)
或ERB::Util.url_encode(*string*)
。
问题:有什么理由为什么使用CGI.escape或ERB :: Util.url_encode这个任务是个坏主意?如果是这样,在Rails 3项目中如何实现HTMLEntities - 我似乎无法从文档中找到它!
答案 0 :(得分:1)
我不确定每种方法的确切优点。但是,如果你想让htmlentities工作,你需要将以下内容添加到你的Gemfile中:
gem 'htmlentities', :git => "https://github.com/threedaymonk/htmlentities.git"
并运行:
bundle install
然后,在你的控制器中:
class TestController < ApplicationController
def index
coder = HTMLEntities.new
string = "<élan>" # or whatever string you want to manipulate
@test = coder.encode(string) # => "<élan>"
end
end
然后使用@test变量做任何你想做的事 - 在你的视图页等上写出来。