0

電子メールを送信するフォームを投稿しています。電子メール本文の一部の HTML が作成され、VB を使用して ASP.net の Web メソッドに jQuery と AJAX 投稿メソッドによって投稿されます。

ここにスニペットがあります

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;上記のように使用して、HTML文字を表示しようとしまし&pound;たが、サーバー側でデコードされたhtmlで常に奇妙な?シンボルが返されます...これを回避する方法はありますか?

4

1 に答える 1

0

jQueryは組み込みのエンコーディングを許可しているため、呼び出しなしで試してみましたか?escape()そのため、値が二重にエンコードされていると思います.

UTF-8次のように、アプリケーションでエンコーディングと文字セットとして使用していることを確認してください。

web.config:

<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 に答える