【问题标题】:Ruby show html tag as stringRuby 将 html 标签显示为字符串
【发布时间】:2021-11-04 00:22:32
【问题描述】:

我有一个 Rails API,它将一些数据显示为 JSON。当用户输入明文时,响应看起来不错。但是当我在输入中添加 html 标签或特殊字符(如“”)时,它会将它们转换为 unicode 字符。无论用户添加什么,我都想将整个内容呈现为字符串。我尝试过使用to_s,但仍然无法将这些位转换为字符串。

 result.each do |row|
      i = row["i"].to_s
      j = row["j"].to_s
      obj[i][j] = {}
      obj[i][j]["name"] = row["name"].to_s
  end

Given: <p>name</p>
Output :\u003cp\u003ename\u003c/p\u003e
Expected output: <p>name</p>

【问题讨论】:

  • 不确定为什么它返回 Unicode 字符。您是否尝试过强制编码为 UTF-8 ?另外,我正在考虑使用raw(&lt;String&gt;)&lt;String&gt;.html_safe
  • @Sumak 是的,实际上显示了相同的结果。不将其解析为 html 标签
  • 我不明白您认为您将如何以 JSON 格式传输 " 而不会因为它是保留字符而对其进行转义?这闻起来像 X&Y 问题。

标签: ruby-on-rails ruby ruby-on-rails-4 ruby-on-rails-5


【解决方案1】:

您将数据显示为 JSON。这就是这些字符在 JSON 字符串中的样子。

'<p>name</p>'.to_json
=> "\"\\u003cp\\u003ename\\u003c/p\\u003e\""
JSON.parse "\"\\u003cp\\u003ename\\u003c/p\\u003e\""
=> "<p>name</p>"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多