我在数据库(", \)
中用它们的 unicode 值对一些字符进行编码(" , \)
。当我在 HTML 中显示这些字段时,它们显示得很好,但是当我放入
<input type="text">
元素时,我得到的信息显示为来自 DB 的实际值,(" , \)
而不是它们的解码值(", \)
。
如何在输入类型文本元素中显示 Unicode 字符的解码值?
我将这些字段提供给一个 jquery 库,该库将此输出视为 Json。
然后我猜想在填充您正在使用val()
的输入时,它将文本作为输入,而在填充您正在使用的页面的其他部分时html()
,它将 HTML 作为输入。
不要发送包含 HTML 的 JSON。发送包含文本的 JSON。需要 HTML 时转换为 HTML。不要将 HTML 存储在数据库中。
这些字符破坏了它所期望的 JSON 对象,所以我必须让它们已经转义。
您应该将它们编码为 JSON,而不是 HTML。除非您尝试通过将字符串混合在一起来生成 JSON,否则您不应该遇到这个问题。不要那样做,而是使用 JSON 库。
事实证明,这是一个 Spring 选项(属性htmlEscape
),它在输入字段上转义了 HTML 内容服务器端。
当我将输入字段上的该属性设置为 false 时,序列"
不再转义,客户端收到的响应中的字符改为"
.
不幸的是,我没有在问题中指定 JSP 上的输入类型标记是 Spring 特定的,而不是 HTML 的,因为我认为这不是问题的关键因素。