【问题标题】:How to display decoded unicode character values in input type text? [closed]如何在输入类型文本中显示解码的 unicode 字符值? [关闭]
【发布时间】:2012-09-10 08:36:07
【问题描述】:

我在 DB 中使用它们的 unicode 值 (" , \) 编码一些字符 (", \)。当我在 HTML 中显示这些字段时,它们显示得很好,但是当我把 <input type="text"> 元素我从 DB (" , \) 而不是它们的解码值 (", \) 中获取显示的实际值的信息。

如何在输入类型的文本元素中显示 Unicode 字符的解码值?

【问题讨论】:

  • 1) 这只是“Unicode 字符”,因为它们具有 Unicode 代码点,就像其他任何字符一样。 2) 为什么要将它们编码为数据库中的 HTML 实体? 3) 显示您的输出代码或至少是最终的 HTML。
  • 我将这些字段提供给一个 jquery 库,该库将此输出视为 Json。这些字符破坏了它所期望的 JSON 对象,所以我必须让它们已经转义。我的问题是相同的字段被提供给需要 JSON 对象的库和一些输入字段。
  • 然后不要在你的数据库中进行不必要的 HTML 实体编码,或者在需要时再次解码。
  • 我愿意接受有关如何将有效 JSON 对象从包含破坏它的字符的字段提供给我无权修改的库的建议。
  • 读取库的代码,它对我的​​控制器进行 ajax 调用并将响应视为 JSON(如果这有帮助的话)。

标签: html unicode input


【解决方案1】:

我将这些字段提供给一个 jquery 库,该库将此输出视为 Json。

然后我猜在填充输入时您使用的是val(),它以文本作为输入,而在填充页面的其他部分时,您使用的是html(),它以HTML 作为输入。

不要发送包含 HTML 的 JSON。发送包含文本的 JSON。需要 HTML 时转换为 HTML。不要将 HTML 存储在数据库中。

这些字符破坏了它所期望的 JSON 对象,所以我必须让它们已经转义。

您应该将它们编码为 JSON,而不是 HTML。除非您尝试通过将字符串混合在一起来生成 JSON,否则您不应该遇到这个问题。不要那样做,改用 JSON 库。

【讨论】:

  • 我说的库是jQGrid。我们正在提供一个由 JSON 对象组成的 .jsp 文件。我们使用这种方法是为了在库创建的表中轻松编写 HTML,但不幸的是,它带来了用户插入不需要的字符的缺点。更改为提供 JSON 对象的方法并将响应编码为“appliaction/json”为时已晚,因为有相当多的地方需要修改。
【解决方案2】:

原来这是一个 Spring 选项(属性 htmlEscape),它在输入字段上转义了 HTML 内容服务器端。

当我将输入字段上的该属性设置为 false 时,序列 &#34 不再转义,客户端收到的响应中的字符改为 "

不幸的是,我没有在问题中指定 JSP 上的输入类型标记是 Spring 特定的,而不是 HTML 的,因为我认为这不是问题的关键因素。

【讨论】:

    猜你喜欢
    • 2020-07-05
    • 1970-01-01
    • 1970-01-01
    • 2010-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    相关资源
    最近更新 更多