我在数据库(", \)中用它们的 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 的,因为我认为这不是问题的关键因素。