html - 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 初始化时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" />
任何人都可以帮助我吗?谢谢
解决方案
推荐阅读
- sql - 如何在 Microsoft Access 中使用表格行值验证表单输入字段?
- android - 生成签名时出错 AAPT Android Studio
- python - Scapy 无法从所有接口嗅探
- google-apps-script - 如何管理 Google App 脚本项目以使它们指向用户选择的文件?
- multithreading - 如果线程本身无法重新启动,ThraPool 如何重用线程?
- java - 使用 WebFlux 的 Spring Boot 中的 H2 和 R2DBC 未找到列错误
- python - 需要帮助尽快发出 1000 个请求。, python, django
- linux - 什么是 linux/unix 中的 checkcons
- blazor - 如何在 Blazor 中设置 textarea/input 最大长度
- python - 使用 Unittest/PyTest/等。测试处理文件的 Python 函数