代码之家  ›  专栏  ›  技术社区  ›  nOOb iOS

使用nscharacterset的URL编码

  •  0
  • nOOb iOS  · 技术社区  · 7 年前

    我有几个视频文件和图像文件存储在应用程序目录 stringbyaddingpercentescapesusingencode: 转换为合法的URL字符串。因为它已被弃用,我们将使用 stringByAddingPercentEncodingWithAllowedCharacters字符串:

    使用 stringbyaddingpercentescapesusingencode字符串

    使用**stringByAddingPercentEncodingWithAllowedCharacters**

    这个程序找不到文件,因此无法加载它。非常感谢您的帮助。

    2 回复  |  直到 7 年前
        1
  •  1
  •   Community Mohan Dere    5 年前

    获取%2520的方法是,当您的url中已经有一个%20时,重新对url进行编码,这会将%20转换为%2520。%255B是你得到的,当你编码方括号两次。

    您可以在en empty project中尝试以下代码:

    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%20已加载.jpg

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

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

    NSURL *urlToLoad = [NSURL fileURLWithPath: fullPath];
    

    fullPath

        2
  •  0
  •   Karamjeet Singh    7 年前

    你可以用

    NSString * encodedString = [@"stringURl to encode" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]];