我有一个Mac Os App,它可以检索网页的html代码并将其放在NSString中。代码是:
NSString*linkURL=[NSString stringWithFormat:@"https://www.example.com"];
NSURL *targetURL=[NSURL URLWithString:linkURL];
NSData *htmlData = [NSData dataWithContentsOfURL:targetURL];
NSString *dataString=[[NSString alloc]initWithData:htmlData encoding:NSUTF8StringEncoding];
此应用程序可在Mac OsX 10.8上运行,并且可以正常运行。
系统更新到Mac OsX 10.12之后,NSUTF8StringEncoding
出现问题。
NSString *dataString
仅包含html代码的一部分,而不包含整个html代码。
我验证了htmlData
包含正确的代码,因为我将htmlData
写入了txt文件,并且其中包含了我检索到的所有html代码。
但是,当我使用NSUTF8StringEncoding用NSString
初始化htmlData
时,字符串仅包含html代码的第一部分。
我也尝试过:
NSString *dataString=[[NSString alloc]initWithUTF8String:[tutorialsHtmlData bytes]];
具有相同的结果。
还有代码:
NSString *dataString=[NSString stringWithContentsOfURL:targetURL encoding:NSUTF8StringEncoding error:nil];
给我相同的结果。
网页的html代码采用UTF-8编码,这是其元数据:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
有人可以帮助我吗?谢谢