0

我有一个字符串,我想在客户端使用 JavaScript 对其进行编码:

/* JS code */
var blogBody = $(".editor").val();
var blogBodyEnc = encodeURIComponent(blogBody)
// blogBody = "<p>text</p><p><br></p><p><br></p><p>text</p>";
// blogBodyEnc = "%3Cp%3Etext%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3Etext%3C%2Fp%3E"

然后我使用 jquery ajax 将编码字符串 blogBodyEnc 传递给服务器。现在我想在服务器上解码这个字符串。我正在努力:

/* ASP.NET code */
string msg = HttpUtility.HtmlDecode(blogBodyEnc);
// blogBodyEnc = "%3Cp%3Etext%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3Etext%3C%2Fp%3E"
// msg =         "%3Cp%3Etext%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3Etext%3C%2Fp%3E"

有人能说有什么问题吗?我希望在服务器端解码后看到 html 代码......但它仍然编码。

4

2 回答 2

4

你想要UrlDecode,没有HtmlDecode

于 2012-11-22T17:20:08.670 回答
1

我想他真的想要:

function htmlEncode(value){
   return $('<div/>').text(value).html();
}

并这样称呼它:

var blogBodyEnc = htmlEncode($(".editor").val());

然后使用

string msg = HttpUtility.HtmlDecode(blogBodyEnc);

添加示例jsfiddle

于 2012-11-22T17:22:13.680 回答