【问题标题】:Rails - convert ascii to charactersRails - 将 ascii 转换为字符
【发布时间】:2018-01-16 09:00:56
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

    使用 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"
    

    【讨论】:

      【解决方案2】:

      根据您的示例,如果您想定义自己的帮助器,这里有一个简单的 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 的回答

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-12-30
          • 2023-03-24
          • 1970-01-01
          • 1970-01-01
          • 2014-10-21
          相关资源
          最近更新 更多