nsdata到nsstring转换中的NSUTF8StringEncoding问题

时间:2018-10-18 16:49:54

标签: html nsstring nsdata nsutf8encoding

我有一个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" />

有人可以帮助我吗?谢谢

0 个答案:

没有答案