ruby-on-rails - 在Rails中使用SimpleRSS解析提要,出现数字代码,无法正确编码

标签 ruby-on-rails utf-8 character-encoding rss

我正在使用 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,但无论我选择什么,它总是直接从 feed 中显示该数字代码。

如何强制它呈现正确的字符?

编辑:这是我的最后一个助手,使用所选答案建议的 gem,包含在此处,以便任何查看此内容的人都可以看到我做了什么。

*rss_helper.rb*

def decode(string) 
  coder = HTMLEntities.new 
  return coder.decode(string) 
end 

show.html.slim

...
decode(entry.title)
...

最佳答案

通过 HTMLEntities 运行它.

HTMLEntities.new.decode(rss_feed_content)

这会将实体编码的字符转换为其等效的文字。

关于ruby-on-rails - 在Rails中使用SimpleRSS解析提要,出现数字代码,无法正确编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13618199/

相关文章:

python - 如何在 CSV 文件中写入 UTF-8

java - 如何将不同编码的(Java)文件转换为相同的?

perl - 编码 : use 'utf8'

javascript - 有没有办法使用 JavaScript 检查文件编码?

ruby-on-rails - 为什么即使使用 mysql2 gem,ActiveRecord 也会返回编码为 ASCII-8BIT 的字段?

ruby-on-rails - 你如何使用带有 attr_encrypted 的装置

unicode - I18n 和非 US-ASCII、Latin1 或 Win1252 的密码

encoding - "Raw"从双UTF-8到UTF-8(或从UTF-8到ANSI)的转换

javascript - 如何将更多数据附加到 AngularJS 模型?

ruby-on-rails - 对于 Rails with Passenger 在子目录中进行页面缓存,我的 Nginx 重写规则应该是什么?