我正在通过NSURLConnection下载html页面,它最后给出了html页面的NSData表示。我需要将此NSData转换为NSString以便解析它。我的问题是这个页面使用了特殊的字符,如“ěščřžáááíéé”等等。当我将NSData转换为NSString时,我会得到一些像“-ì≠”而不是“í”等jibrish。我知道问题是编码,但我不知道如何克服这个问题...我不太了解编码,但我发现该网站使用utf-8(这些字符是捷克语),所以我'我真的走到了尽头...
这是我的代码:
NSString* docHTML = [[NSString alloc] initWithBytes: [self.receivedData bytes] length:[self.receivedData length] encoding: NSUTF8StringEncoding];
感谢您的帮助
答案 0 :(得分:3)
您的网页可能不会以UTF-8编码其内容。您需要使用与网页相同的编码。
编辑:另请注意,receivedBytes
在连接完成之前无效。您无法在didReceiveData中间将数据转换为字符串。
作为旁注,使用initWithData:encoding:
更容易。
答案 1 :(得分: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
祝你好运!