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.
  • 相关阅读:
    编码的使用,编码与解码
    小数据池,is和==的区别,id()
    python的内置函数
    python基本数据类型
    组合模式学习
    访问者模式
    C++ primer Plus回顾
    命令模式学习
    策略模式学习(设计模式)
    python_xlrd模块学习
  • 原文地址:https://www.cnblogs.com/ficow/p/5035075.html
Copyright © 2011-2022 走看看