gpt4 book ai didi

ios - 使用 NSCharcterSet 进行 URL 编码

转载 作者:行者123 更新时间:2023-11-28 23:47:10 25 4
gpt4 key购买 nike

我在应用程序目录中存储了很少的视频文件和图像文件。我正在使用 stringByAddingPercentEscapesUsingEncoding: 将其转换为合法的 URL 字符串。由于它已被弃用,我们将改用 stringByAddingPercentEncodingWithAllowedCharacters:,因此我无法获得用于加载 pdf 或播放视频的正确 URL。我尝试了所有可用的 NSCharacterSet。它正在为空间添加额外的 %252020,这会产生问题。

使用stringByAddingPercentEscapesUsingEncoding

file:///var/mobile/Containers/Data/Application/1392B0FE-F998-45A4-A398-A3ACB47ECE26/Library/Private%20Documents/Sample%20Image%20To%20Be%20Loaded.jpg

使用 ** stringByAddingPercentEncodingWithAllowedCharacters**

file:///var/mobile/Containers/Data/Application/1392B0FE-F998-45A4-A398-A3ACB47ECE26/Library/Private%2520Documents/Sample%2520Image%2520To%2520Be%2520Loaded.jpg

这找不到文件,因此无法加载它。非常感谢任何帮助。

最佳答案

获得 %2520 的方式是当您的 url 中已经有 %20 时,并再次进行 url 编码,这会将 %20 转换为 %2520。 %255B 是对方括号进行两次编码时得到的结果。

您可以在空项目中尝试以下代码:

NSString * str = @"/var/mobile/Containers/Data/Application/1392B0FE-F998-45A4-A398-A3ACB47ECE26/Library/Private Documents/Sample Image To Be Loaded.jpg";
NSString * encodedString = [str stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]];
NSLog(@"encodedString = %@", encodedString);
NSString * encodedStringAgain = [encodedString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]];
NSLog(@"encodedStringAgain = %@", encodedStringAgain);

它打印:

encodedString = /var/mobile/Containers/Data/Application/1392B0FE-F998-45A4-A398-A3ACB47ECE26/Library/Private%20Documents/Sample%20Image%20To%20Be%20Loaded.jpg

encodedStringAgain = /var/mobile/Containers/Data/Application/1392B0FE-F998-45A4-A398-A3ACB47ECE26/Library/Private%2520Documents/Sample%2520Image%2520To%2520Be%2520Loaded.jpg

您在代码中所要做的就是:

NSURL *urlToLoad = [NSURL fileURLWithPath: fullPath];

fullPath为未经任何编码的原始字符串。

关于ios - 使用 NSCharcterSet 进行 URL 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52497354/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com