Windows Phone 8 SDK WebClient編碼問題

c# html-agility-pack visual-studio-2010 windows-phone-7 windows-phone-8

我正在嘗試使用windows-1254 charset從一個站點解析html。但是所有的土耳其人字符都是這樣的:�����

實際問題在哪裡?我試過這些:

webClient.Encoding = System.Text.Encoding.UTF8
webClient.Encoding = System.Text.Encoding.GetString("UTF-8");

作為功能:

webClient.Encoding = System.Text.Encoding.UTF8
webClient.Encoding = System.Text.Encoding.GetString("UTF-8");

還有這個標題:

webClient.Encoding = System.Text.Encoding.UTF8
webClient.Encoding = System.Text.Encoding.GetString("UTF-8");

(用iso-8859-9,utf8也是)

這就是我使用webclient的方式:

webClient.Encoding = System.Text.Encoding.UTF8
webClient.Encoding = System.Text.Encoding.GetString("UTF-8");

處理:

webClient.Encoding = System.Text.Encoding.UTF8
webClient.Encoding = System.Text.Encoding.GetString("UTF-8");

一般承認的答案

而不是使用標準方法,為什麼不創建一個特定於您需要的自定義類,它將處理etconding。

將幫助您生成類,如下所示: 在此處輸入圖像描述

然後你需要做的就是

webClient.Encoding = CustomEncoding();

讓我知道事情的後續 (:


熱門答案

如果你知道它的windows-1254,你為什麼要將編碼設置為UTF-8?修復相當容易,您只需在WebClient設置正確的編碼即可。

wb.Encoding = Encoding.GetEncoding(1254);

要么

wb.Encoding = Encoding.GetEncoding(1254);

此外,不再需要您的ReplaceText方法。

編輯:當然,Windows Phone不支持這種編碼,你必須自己實現除utf-8或utf-16之外的任何編碼。幸運的是,有一個簡單的方法,你只需要使用這裡描述的程序來生成自己的編碼類。




許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因