-3

我在数据库(", \)中用它们的 unicode 值对一些字符进行编码(&#34; , &#92;)。当我在 HTML 中显示这些字段时,它们显示得很好,但是当我放入 <input type="text">元素时,我得到的信息显示为来自 DB 的实际值,(&#34; , &#92;)而不是它们的解码值(", \)

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

4

2 回答 2

1

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

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

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

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

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

于 2012-09-10T08:44:12.070 回答
0

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

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

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

于 2012-09-10T10:24:16.300 回答