【发布时间】:2018-01-16 09:00:56
【问题描述】:
我正在使用 Rails 5 在 Web 浏览器中显示数据库内容。
在 db 中,所有的特殊字符都以它们的 ascii 形式写入。例如,它不是撇号,而是写为'。
因此,我的观点是显示 ascii 代码。有没有办法将它们全部转换为视图的字符?
【问题讨论】:
标签: mysql ruby-on-rails utf-8 view ascii
我正在使用 Rails 5 在 Web 浏览器中显示数据库内容。
在 db 中,所有的特殊字符都以它们的 ascii 形式写入。例如,它不是撇号,而是写为'。
因此,我的观点是显示 ascii 代码。有没有办法将它们全部转换为视图的字符?
【问题讨论】:
标签: mysql ruby-on-rails utf-8 view ascii
使用 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"
【讨论】:
根据您的示例,如果您想定义自己的帮助器,这里有一个简单的 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 的回答
【讨论】:
字符在存储到数据库之前通过一些“html 实体”转换提供。回去修复它。
【讨论】: