我想将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?
有什么问题?
我无法将NSData转换为NSURL。
我认为那没用,@"You cant convert this stringdata into NSURL, it will always retrun ni",除非或直到它实际上是一个URL例如 http:www.google.com"
如果它实际上是一个URL(已经存在的URL),那么需要将什么转换为NSURL? 它是一个数据,我想将此数据转换为url。
您正在尝试将表示PDF的数据加载到NSString中。 PDF文件不包含代表文本的UTF-8编码字符,而是包含标题信息,字体,矢量图形和文本的文件。
在我看来,解决您问题的唯一方法是将NSData的源更改为将提供构成URL的UTF-8编码字符的内容。
如果您无法通过其他任何方式获取数据,为什么不检查是否可以从PDF中提取文本数据呢? https://github.com/zachron/pdfiphone
好的...那我该怎么做才能将数据转换为nsurl?
更改您的数据。 它来自哪里?
以此方式思考问题:您拥有一张图像,如果在图像查看器中打开它,则会看到文本" www.thisisanimage.com"。 现在,您正在尝试获取表示图像文件的二进制数据并将其加载到字符串中,并且希望STRING会显示" www.thisisanimage.com"。 得到它?
我的意思是...但是我需要将此数据转换为url。 有什么办法吗?
如果上述方法不起作用,这是另一个可能的解决方案:stackoverflow.com/questions/3384916/
感谢您的努力,但我想实现打开功能(UIDocumentInteraction,以显示可以打开PDF的已安装应用程序的选项)
好的,试试这个:
//Convert data to string
NSString *urlString = [[NSString alloc] initWithData:self encoding:NSUTF8StringEncoding];
//Convert the string to URL
NSURL *url = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
您是否尝试过将数据写入本地文件,
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);
}
希望这可以帮助。
谢谢
是的...我知道这种方法可以工作,但是出于安全目的,我不想将数据写入本地文件。