Rails - 将ascii转换为字符

时间:2017-08-08 17:10:19

标签: mysql ruby-on-rails utf-8 view ascii

我正在使用Rails 5在Web浏览器中显示数据库内容。

在db中,所有特殊字符都以ascii格式写入。例如,它不是撇号,而是写成'

因此,我的观点是显示ascii代码。有没有办法将它们全部转换为视图的字符?

3 个答案:

答案 0 :(得分:3)

使用Rails转换包含HTML字符实体的任何字符串:

CGI.unescape_html "It doesn't look right" # => "It doesn't look right"

CGI模块位于Ruby标准库中,默认情况下是Rails所必需的。如果你想在非Rails项目中做同样的事情:

require 'cgi'
CGI.unescape_html "It doesn't look right"

答案 1 :(得分:0)

根据您的示例,如果您想定义自己的帮助程序,这是一个简单的Ruby解决方案

39.chr # => "'"
'''.delete('&#;').to_i.chr # => "'"

module ApplicationHelper
  def ascii_to_char(ascii)
    ascii.delete('&#;').to_i.chr
  end
end

# in the views
ascii_to_char(''') # => "'"

如果您真正需要的是完整的HTML转义,请参阅@ forsym的回答

答案 2 :(得分:0)

在存储到数据库之前,字符通过一些“html实体”转换来提供。回去修复一下。