0

我正在使用所见即所得来允许用户格式化文本。这是导致错误的文本:

<p><span style="line-height: 115%">This text starts with a 'T'</span></p>

错误是“This”中的“T”,或者任何第一个字母,在使用 URLDecode 并保存到数据库时被随机删除。在服务器端删除 URLDecode 似乎可以修复它而没有任何负面影响(数据库包含相同的信息)。

文件说_

HTTP 中的查询字符串始终是 URL 编码的。

真的是这样吗?如果是这样,为什么不删除 URLDecode 似乎把一切都搞砸了?

所以两个问题:

  1. 为什么 URLDecode 会导致第一个文本字符像这样被删除(它似乎只发生在 line-height 属性存在时)?
  2. 在将发布的数据放入数据库之前,我真的需要(或者我什至想要)使用 URLDecode 吗?

编辑:我制作了一个测试页面来回显解码后的文本,并且 URLDecode 肯定会删除该字符,但我不知道为什么。

4

1 回答 1

1

我相信在form填充范围时会自动完成解码。这就是为什么%(此字符用于编码)之后的字符被删除的原因——您正在尝试第二次解码字符串。

出于安全原因,您可能有兴趣剥离script标签,甚至使用白名单清理 HTML。尝试在CFLib.org中搜索适用的功能。

于 2011-04-19T16:27:14.917 回答