2013-07-15 30 views
0

我發佈一個表單發送一封電子郵件,部分電子郵件正文的HTML被創建並通過jQuery和AJAX發佈方法發佈到網頁方法在ASP.net中使用VB。成功發佈HTML編碼幷包括英鎊符號到VB.net方法

這裏有一個片斷

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) 

這一切工作正常,除了磅的跡象,w這些解碼不正確。我已經嘗試使用&#163;按照上述和&pound;來顯示HTML字符,但我總是得到一個奇怪的?符號返回在服務器端解碼的HTML ...有沒有辦法繞過這個?

回答

0

您是否嘗試過沒有調用escape(),因爲jQuery允許內置編碼,所以我認爲您的值是雙重編碼的。

確保您使用的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" /> 
+0

沒有逃脫它只是將不會發布,因爲它會因爲HTML標記和引號等而創建無效的JSON發佈對象。 我會嘗試編碼標記建議 –

+0

Update - nope,但是,我有一個想法,HTML是通過電子郵件發送的,並且在收到的電子郵件中發現此問題正在發生,也許我需要在電子郵件文檔的標題中明確設置字符類型? –

+0

不,它已經被設置爲UTF-8 –