我正在使用 SimpleRSS gem 来解析 WordPress RSS 提要。唯一的问题是该提要中的许多字符是使用数字代码编码的,例如
’
代替
'
文件
*rss_helper.rb*
module RssHelper
require 'rubygems'
require 'simple-rss'
require 'open-uri'
def rss
rss = SimpleRSS.parse open('http://example.com/feed/')
end
end
show.html.slim
...
-rss.entries.each do |entry|
=entry.title
使用 entry.title,我尝试过:
=entry.title.encode("UTF-8")
=entry.title.encode(Encoding::UTF_8, :invalid => :replace, :undef => :replace, :replace => '')
两者都没有奏效。我找到了很多关于 iconv gem 的资源,但据我所知,它现在已被弃用。
我也尝试使用该.force_encoding
方法而不是.encoding
,但无论我选择什么,它总是直接从提要中显示该数字代码。
如何强制它呈现正确的字符?
编辑:这是我使用所选答案建议的 gem 的最终帮手,包括在此处,因此查看此内容的任何人都可以看到我所做的。
*rss_helper.rb*
def decode(string)
coder = HTMLEntities.new
return coder.decode(string)
end
show.html.slim
...
decode(entry.title)
...