0

我正在发布一个发送电子邮件的表单,部分电子邮件正文的 HTML 由 jQuery 创建并发布,并使用 VB 将 AJAX 发布方法发布到 ASP.net 中的 Web 方法。

这是一个片段

var tbl = $('<table/>');
var paymentCell = $('<td/>').html('&#163;' + thisAmount).appendTo(row);
$(row).appendTo(tbl); 
     // Generates the element in question

这个,除其他外,然后由 AJAX 作为数据变量发布,数据变量看起来像这样:

 var data = '{ "emailHtml":"' + escape((wrap).html()) + '"}';

然后在服务器端解码,如下所示:

emailHtml = HttpUtility.UrlDecode(emailHtml)

除了没有正确解码的磅符号外,这一切都很好。我已经尝试&#163;按照上面的方法使用,并&pound;显示 HTML 字符,但我总是?在服务器端解码的 html 中返回一个奇怪的符号......有没有办法解决这个问题?

4

1 回答 1

0

您是否在没有escape()调用的情况下尝试过,因为 jQuery 允许内置编码,所以我认为您的值是双重编码的。

确保您UTF-8在应用程序中用作编码和字符集,如下所示:

网络配置:

<system.web>
    <globalization requestEncoding="utf-8" responseEncoding="utf-8" />
</system.web>

HTML 页面:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
于 2013-07-15T17:48:01.563 回答