我試圖做下面的字符串,其中有報價的HTML編碼,它的擊打不工作用於服務器端的字符串進行HTML編碼問題
服務器返回帶有引號的字符串
string serverString= **「Test hello,」**
//這是從數據庫返回
serverString =HttpUtility.HtmlEncode(serverString);
我得到這個結果
�Test helloI,�
但仍然沒有取代,我在asp.net頁面上找到一些鑽石符號
有人可以告訴我我做錯了什麼。
我試圖做下面的字符串,其中有報價的HTML編碼,它的擊打不工作用於服務器端的字符串進行HTML編碼問題
服務器返回帶有引號的字符串
string serverString= **「Test hello,」**
//這是從數據庫返回
serverString =HttpUtility.HtmlEncode(serverString);
我得到這個結果
�Test helloI,�
但仍然沒有取代,我在asp.net頁面上找到一些鑽石符號
有人可以告訴我我做錯了什麼。
你確定它不是渲染問題嗎?你可以嘗試像「Arial Unicode MS」這樣的字體來確保瀏覽器正確渲染字符。
您還應該驗證從數據庫返回的字符串是否正確。
最後,它可以幫助分享您如何將serverString寫入您的響應流。一些ASP.NET控件希望使用文本和HTML編碼,而另一些則希望使用HTML而不使用HTML。
@ dragon,這是一個服務器到服務器的調用,並且正在調用的頁面有UTF設置。 – kobe
您看到的引號字符從HTML角度來看是完全合法的字符,因此它們不需要由HtmlEncode編碼。你最可能看到的是瀏覽器的編碼不支持這些字符的問題。有關更多信息,請參閱http://www.htmlbasictutor.ca/character-encoding.htm。
非常感謝,讓我做好準備。 – kobe
這是因爲服務器返回花哨的雙引號(這不是他們的技術名稱)而不是普通的雙引號。你可以這樣做:
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", "'");
不;這些引用字符沒有任何問題。 – SLaks
我不明白髮生了什麼事情。數據庫返回什麼? '**「測試你好,」**'? – Darcy
你有錯誤的編碼。你在哪裏得到這個結果? – SLaks
@slaks,我從數據庫中獲得價值。 – kobe