如何将带有 textEncoding utf-8 的 NSData 转换为 NSURL
How to convert NSData with textEncoding utf-8 into NSURL
我想将 NSData (textEncoding utf-8) 转换为 NSURL。
我正在为此编写下面的代码,但是从 NSData 到 NSString 的转换返回 nil。 (可能是由于编码类型)
NSString *stringFromData = [[NSString alloc] initWithData:myData encoding:NSUTF8StringEncoding]; // stringFromData is nil after execution of this line.
NSURL *url = [[NSURL alloc] initWithString:stringFromData];
那么在我的例子中,我应该怎么做才能将 NSData 转换为 NSURL。
但是当我尝试将此数据加载到 webview 时,它运行良好。这是我将此数据加载到 webview 的代码。
[self.webView loadData:myData MIMEType:@"application/pdf" textEncodingName:@"utf-8" baseURL:nil]; //PDF is showing in my webview.
但我无法将此 NSData 转换为 NSURL。我应该使用什么编码将带有 textEncoding utf-8 的 NSData 转换为 NSURL?
您正在尝试将表示 PDF 的数据加载到 NSString
中。 PDF 文件不包含表示文本的 UTF-8 编码字符,它是一个包含 header 信息、字体、矢量图形和文本的文件。
在我看来,解决您的问题的唯一方法是将 NSData
的来源更改为可以提供构成 URL.
的 UTF-8 编码字符的内容
如果您无法通过任何其他方式获取数据,为什么不检查是否可以从 PDF 中提取文本数据? https://github.com/zachron/pdfiphone
您试过将数据写入本地文件吗,
NSString *docPath = [NSHomeDirectory() stringByAppendingString:@"/Documents"];
NSString *pdfFilePath = [docPath stringByAppendingPathComponent:@"pdfFile.pdf"];
BOOL success = [myData writeToFile:pdfFilePath atomically:YES];
if (success) {
NSURL *url = [[NSURL alloc] initFileURLWithPath:pdfFilePath];
NSLog(@"url from data : %@",url);
}
希望对您有所帮助。
谢谢
好的,试试这个:
//Convert data to string
NSString *urlString = [[NSString alloc] initWithData:self encoding:NSUTF8StringEncoding];
//Convert the string to URL
NSURL *url = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
我想将 NSData (textEncoding utf-8) 转换为 NSURL。 我正在为此编写下面的代码,但是从 NSData 到 NSString 的转换返回 nil。 (可能是由于编码类型)
NSString *stringFromData = [[NSString alloc] initWithData:myData encoding:NSUTF8StringEncoding]; // stringFromData is nil after execution of this line.
NSURL *url = [[NSURL alloc] initWithString:stringFromData];
那么在我的例子中,我应该怎么做才能将 NSData 转换为 NSURL。
但是当我尝试将此数据加载到 webview 时,它运行良好。这是我将此数据加载到 webview 的代码。
[self.webView loadData:myData MIMEType:@"application/pdf" textEncodingName:@"utf-8" baseURL:nil]; //PDF is showing in my webview.
但我无法将此 NSData 转换为 NSURL。我应该使用什么编码将带有 textEncoding utf-8 的 NSData 转换为 NSURL?
您正在尝试将表示 PDF 的数据加载到 NSString
中。 PDF 文件不包含表示文本的 UTF-8 编码字符,它是一个包含 header 信息、字体、矢量图形和文本的文件。
在我看来,解决您的问题的唯一方法是将 NSData
的来源更改为可以提供构成 URL.
如果您无法通过任何其他方式获取数据,为什么不检查是否可以从 PDF 中提取文本数据? https://github.com/zachron/pdfiphone
您试过将数据写入本地文件吗,
NSString *docPath = [NSHomeDirectory() stringByAppendingString:@"/Documents"];
NSString *pdfFilePath = [docPath stringByAppendingPathComponent:@"pdfFile.pdf"];
BOOL success = [myData writeToFile:pdfFilePath atomically:YES];
if (success) {
NSURL *url = [[NSURL alloc] initFileURLWithPath:pdfFilePath];
NSLog(@"url from data : %@",url);
}
希望对您有所帮助。
谢谢
好的,试试这个:
//Convert data to string
NSString *urlString = [[NSString alloc] initWithData:self encoding:NSUTF8StringEncoding];
//Convert the string to URL
NSURL *url = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];