2010-12-15 36 views
2

我在呈現的ASP .NET頁面中看到一個特殊字符。 此頁面將該內容作爲來自REST服務的XML響應讀取。HTML輸出中的特殊字符,可能是由於編碼問題

如果我在瀏覽器中加載XML,它會顯示「 - 」正常。 (它比通常的短劃線長:))

但是,當使用EVAL打印在ASPX頁面中繼器上時,它會顯示一個特殊字符。

頁面有一個元標記。

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 

雖然,瀏覽器檢測到頁面編碼爲UTF-8。

我正在尋找解決方案,以便我可以擺脫特殊字符。

回答

2

該char可能是ASCII碼150或151.一些程序(特別是MS-Word)使用這些短劃線和長短劃線。問題在於字符集ISO-8859-1沒有將128 -159之間的字符映射到任何值,因此您無法確定瀏覽器將如何顯示字符。

下面的函數(剛纔輸入,不打勾)將源字符串轉換從8859到UTF-8

function string MakeUTF8String(string SourceStr) 
{ 
    byte[] b = Encoding.GetEncoding("iso-8859-1").GetBytes(SourceStr) 
    return System.Text.Encoding.UTF8.GetString(b); 
} 
+0

謝謝,這工作。我正在嘗試沿着同一條線。但是GetEncoding(「[specific one]」)很有幫助。 – cdpnet 2010-12-15 19:46:06

+0

很高興它的工作,只是經歷了一些類似的編碼問題... – Sparky 2010-12-15 21:55:57