2011-07-29 18 views
1

我試圖做下面的字符串,其中有報價的HTML編碼,它的擊打不工作用於服務器端的字符串進行HTML編碼問題

服務器返回帶有引號的字符串

string serverString= **「Test hello,」** //這是從數據庫返回

serverString =HttpUtility.HtmlEncode(serverString); 

我得到這個結果

�Test helloI,� 

但仍然沒有取代,我在asp.net頁面上找到一些鑽石符號

有人可以告訴我我做錯了什麼。

+0

我不明白髮生了什麼事情。數據庫返回什麼? '**「測試你好,」**'? – Darcy

+1

你有錯誤的編碼。你在哪裏得到這個結果? – SLaks

+0

@slaks,我從數據庫中獲得價值。 – kobe

回答

1

你確定它不是渲染問題嗎?你可以嘗試像「Arial Unicode MS」這樣的字體來確保瀏覽器正確渲染字符。

您還應該驗證從數據庫返回的字符串是否正確。

最後,它可以幫助分享您如何將serverString寫入您的響應流。一些ASP.NET控件希望使用文本和HTML編碼,而另一些則希望使用HTML而不使用HTML。

+0

@ dragon,這是一個服務器到服務器的調用,並且正在調用的頁面有UTF設置。 – kobe

1

這是因爲服務器返回花哨的雙引號(這不是他們的技術名稱)而不是普通的雙引號。你可以這樣做:

string serverString= "「Test hello,」"; 
serverString = HttpUtility.HtmlEncode(serverString) 
          // Replaces fancy left double quote with regular one 
          .Replace("\u2018", "'") 
          // Replaces fancy right double quote with regular one 
          .Replace("\u2019", "'"); 
+1

不;這些引用字符沒有任何問題。 – SLaks