在POST之前编码HTML

osh*_*nen 5 html jquery post html-encode

我有以下脚本,它编码它收到的一些值,但它似乎不编码双引号.

在发布之前如何正确编码完整值?

function htmlEncode(value){ 
    return $('<div/>').text(value).html(); 
} 
Run Code Online (Sandbox Code Playgroud)

上面的脚本给了我这个:

&lt;p&gt;Test&amp;nbsp; &lt;span style="color: #ffffff"&gt;&lt;strong&gt;&lt;span style="background-color: #ff0000"&gt;1+1+1=3&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
Run Code Online (Sandbox Code Playgroud)

我需要它给我这个:

&lt;p&gt;Test&amp;nbsp; &lt;span style=&quot;color: #ffffff&quot;&gt;&lt;strong&gt;&lt;span style=&quot;background-color: #ff0000&quot;&gt;1+1+1=3&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
Run Code Online (Sandbox Code Playgroud)

编辑:后续问题: 数据库中的编码HTML返回页面

Geo*_*ker 8

你不应该尝试使用JavaScript编码.

你应该将它编码为服务器端.

任何可以用JavaScript完成的事情都可以撤消.

如果您还检查它是否已在服务器上编码,则在JavaScript中对其进行编码是有效的,但请记住:可以禁用JavaScript.

  • @GeorgeStocker同意了,但是您的评论是不使用javascript对事物进行编码,并且在发布之前有100%的有效时间来执行此操作.在这种情况下,我提到你不想在服务器端进行编码,目的是编码以绕过发布html的限制而不禁用请求验证.数据通常不应存储编码,但要清理,否则您可能会遇到双重编码问题. (2认同)

Lab*_*abu 5

什么乔治说的是真的.但是,如果你必须在客户端编码字符串,我建议你使用JavaScript的encodeURIComponent().

  • `不推荐使用escape和unescape函数.使用encodeURI,encodeURIComponent,decodeURI或decodeURIComponent来编码和解码特殊字符的转义序列.`https://developer.mozilla.org/en/JavaScript/Reference/Deprecated_Features (2认同)