2013-04-05 124 views
-2

我有這樣的代碼:如何將此字符串解碼爲utf-8字符串?

string URL = "http://translate.google.com/m?hl=vi&sl=en&tl=vi&ie=UTF-8&prev=_m&q=song"; 
string s = ""; 
WebClient client = new WebClient(); 
client.Headers.Add("user-agent", "Mozilla/5.0 (SymbianOS/9.4; U; Series60/5.0 Nokia5800d-1/21.0.025; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/413 (KHTML, like Gecko) Safari/413"); 
s = client.DownloadString(URL); 

在運行時我收到了字符串格式字符串:

danh tÆ°Ì€ buổi há»p để ca hát 

這個字符串:

danh từ buổi họp để ca hát 

非常感謝你:)

+3

哪裏原從何而來?它編碼爲什麼? – Oded 2013-04-05 14:31:11

+0

對。頁面的編碼是什麼,爲什麼你不把'client.Encoding'設置爲開始? – Oded 2013-04-05 14:37:37

+0

@Oded:謝謝,它的工作,我是新手:) – Sakura 2013-04-05 14:39:41

回答

1

當得到byte[]代表一個stri ng,你需要知道在獲取之前使用了什麼編碼。

在這種情況下,它是UTF-8,因此設置的WebClient,以導致正確的字符串的Encoding

string URL = "http://translate.google.com/m?hl=vi&sl=en&tl=vi&ie=UTF-8&prev=_m&q=song"; 
string s = ""; 
WebClient client = new WebClient(); 
client.Encoding = Encoding.UTF8; 
client.Headers.Add("user-agent", "Mozilla/5.0 (SymbianOS/9.4; U; Series60/5.0 Nokia5800d-1/21.0.025; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/413 (KHTML, like Gecko) Safari/413"); 
s = client.DownloadString(URL);