首页 > 解决方案 > nsdata 到 nsstring 转换中的 NSUTF8StringEncoding 问题

问题描述

我有一个 Mac Os 应用程序,可以检索网页的 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 初始化时NSStringhtmlData字符串只包含 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" />

任何人都可以帮助我吗?谢谢

标签: htmlnsstringnsdatansutf8encoding

解决方案


推荐阅读