zoukankan      html  css  js  c++  java
  • iOS 含有 中文的URL 转码问题

    非ARC模式下:

    - (NSString *)encodeToPercentEscapeString: (NSString *) input
    {
        NSString *outputStr = (NSString *) 
        CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
                                                (CFStringRef)input,
                                                NULL,
                                                (CFStringRef)@"!*'();:@&=+$,/?%#[]",
                                                kCFStringEncodingUTF8);
        return outputStr;
    }
    
    - (NSString *)decodeFromPercentEscapeString: (NSString *) input
    {
        NSMutableString *outputStr = [NSMutableString stringWithString:input];
        [outputStr replaceOccurrencesOfString:@"+"
                                   withString:@" "
                                      options:NSLiteralSearch
                                        range:NSMakeRange(0, [outputStr length])];
    
        return [outputStr stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    }

    ARC模式下:

    - (NSString *)encodeToPercentEscapeString: (NSString *) input
    {
        NSString*  outputStr = (__bridge NSString *)CFURLCreateStringByAddingPercentEscapes(
                                                                                            NULL, /* allocator */
                                                                                            (__bridge CFStringRef)input,
                                                                                            NULL, /*解决含有的转义字符*/
                                                                                            (CFStringRef)@"!*'();:@&=+$,/?%#[]",
                                                                                            kCFStringEncodingUTF8);
        return outputStr;
    }
    - (NSString *)decodeFromPercentEscapeString: (NSString *) input
    {
        NSMutableString *outputStr = [NSMutableString stringWithString:input];
        [outputStr replaceOccurrencesOfString:@"+"
                    withString:@""
                    options:NSLiteralSearch
                    range:NSMakeRange(0,
                    [outputStr length])];
    
        return [outputStr stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    }
    Stay hungry,stay foolish.
  • 相关阅读:
    js学习(三)对象与事件
    js学习(二)
    js学习(一)
    SSM+Redis结构框架及概述
    javaBean、EJB、POJO
    flex布局时的居中问题
    layui后台管理系统的坑
    基于element的模糊查询
    vue数组的运用
    uni-app 图片上传(uploadFile)
  • 原文地址:https://www.cnblogs.com/ficow/p/5035075.html
Copyright © 2011-2022 走看看