我想将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?
答案 0 :(得分:2)
您正尝试将代表PDF的数据加载到NSString
。 PDF文件不包含表示文本的UTF-8编码字符,它是包含标题信息,字体,矢量图形和文本的文件。
在我看来,解决您问题的唯一方法是将NSData
的来源更改为提供构成网址的UTF-8编码字符的内容。
如果您无法以其他方式获取数据,为什么不检查是否可以从PDF中提取文本数据? https://github.com/zachron/pdfiphone
答案 1 :(得分:0)
您是否尝试将数据写入本地文件
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);
}
希望这有帮助。
由于
答案 2 :(得分:0)
好的,试试这个:
//Convert data to string
NSString *urlString = [[NSString alloc] initWithData:self encoding:NSUTF8StringEncoding];
//Convert the string to URL
NSURL *url = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];