Windows Phone 開發 - Windows Phone 7 使用 WebBrowser.NavigateToString 方法顯示中文亂碼問題

  • 4001
  • 0
  • 2013-10-02

Windows Phone 開發 - Windows Phone 7 使用 WebBrowser.NavigateToString 方法顯示中文亂碼問題

 

問題的來龍去脈

在先前寫了一個 Windows Phone App 約會大作戰 只開發了 Windows Phone 8 版本,後續這幾天改寫成 Windows Phone 7 版本,其中一個功能使用了 WebBrowser.NavigateToString 方法顯示 HTML 内容。

image

 

顯示中文時亂碼,該如何處理?

1

 

附註:在 Windows Phone 8 不會有此情形。

 

問題的解決方法

透過以下代碼,將原始 HTML 做轉換,針對字元大於 127 的部分加上 &# 開頭 ; 結尾

public static string ConvertExtendedASCII(string strSourceHTML)
{
    StringBuilder sbConvertResult = new StringBuilder();
    foreach (char chr in strSourceHTML)
    {
        var iChr = Convert.ToInt32(chr);
        if (iChr > 127)
        {
            sbConvertResult.AppendFormat("&#{0};", iChr);
        }
        else
        {
            sbConvertResult.Append(chr);
        }
    }
    return sbConvertResult.ToString();
}

 

image

 

轉換後,顯示在 WebBrower 結果,中文正常顯示。

2

 

其他相關資訊

International UTF-8 Characters in Windows Phone 7 WebBrowser Control