美文网首页
中文URL编码和解码

中文URL编码和解码

作者: by小杰 | 来源:发表于2016-09-19 19:31 被阅读23次

    发现NSString类中有内置的方法可以实现。他们分别是:

    - (NSString *)stringByAddingPercentEscapesUsingEncoding:(NSStringEncoding)encoding
    - (NSString *)stringByReplacingPercentEscapesUsingEncoding:(NSStringEncoding)encoding
    只要传入相应的编码即可以进行编码和解码了
    
    不过此方法是对整个Url进行编码的所以如果有Query String中带有&?/等是不会进行编码转换的,
    如果有这方面的需要的朋友可以参照下面提供的网址,找到解决方法:
    [http://www.cocoachina.com/bbs/read.php?tid-2469.html]
    
    另外, 可以用CFURLCreateStringByteAddingPercentEscapes: 解决特殊符号的问题
    

    示例:

    //源字符串
    NSString *string1 = @"https://www.cloudsafe.com/文件夹";  
    
    //编码
    NSString *string2 = [string1 stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];  
    NSString * string3 = [string2 stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];  
          
    //解码
    NSString *string4 = [string2 stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];  
    NSString *string5 = [string3 stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];  
    
    //解码  
    NSString *string6 = [string4 stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];  
    NSString *string7 = [string5 stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];  
    
    
    输出结果: string5 & 6 重复编码encode  
       
    string1:https://www.cloudsafe.com/文件夹  
       
    string2:https://www.cloudsafe.com/%E6%96%87%E4%BB%B6%E5%A4%B9  
    string3:https://www.cloudsafe.com/%25E6%2596%2587%25E4%25BB%25B6%25E5%25A4%25B9  
       
    string4:https://www.cloudsafe.com/文件夹  
    string5:https://www.cloudsafe.com/%E6%96%87%E4%BB%B6%E5%A4%B9  
       
    string6:https://www.cloudsafe.com/文件夹  
    string7:https://www.cloudsafe.com/文件夹  ```

    相关文章

      网友评论

          本文标题:中文URL编码和解码

          本文链接:https://www.haomeiwen.com/subject/gvynettx.html