2012-03-29 56 views
0

我通過NSURLConnection下載HTML頁面,它給了我最後的HTML頁面NSData表示。我需要將此NSData轉換爲NSString以解析它。我的問題是,這個頁面使用特殊字符,如「ěščřýáááííé」等,當我將NSData轉換爲NSString時,我得到了一些類似「-ì¬≠」而不是「í」等的jibrish。知道問題是與編碼,但我不知道如何克服這個問題...我不太瞭解編碼,但我發現該網站使用utf-8(和那些字符在捷克),所以我'可真在死衚衕......NSData到NSString編碼返回亂碼

這裏是我的代碼:

NSString* docHTML = [[NSString alloc] initWithBytes: [self.receivedData bytes] length:[self.receivedData length] encoding: NSUTF8StringEncoding]; 

感謝所有幫助

回答

3

您的網頁可能不編碼它的UTF-8的內容。您需要使用與網頁相同的編碼。

編輯:另請注意,receivedBytes在連接完成之前無效。您不能將數據轉換爲didReceiveData中間的字符串。

作爲一個方面說明,它更容易使用initWithData:encoding:

0

你可以嘗試這樣的:

NSString *docHTML; 
docHTML = [[NSString alloc] initWithData:self.receivedData encoding:NSASCIIStringEncoding]; 
if (!docHTML) 
{ 
    NSLog(@"ASCII not working, will try utf-8!"); 
    docHTML = [[NSString alloc] initWithData:self.receivedData encoding:NSUTF8StringEncoding]; 
} 
//Do stuff with docHTML 

祝你好運!

+0

或者只是從響應的HTTP頭域解析編碼。 – 2012-03-30 00:34:41