zoukankan      html  css  js  c++  java
  • iOS中文网址路径转换

    1.在网址路径里出现中文,使用

    方法1:url编码

    NSString* encodedString = [urlStringstringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    url解码

    NSString *str = [ss stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    方法2:

    NSString * encodedString = (NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,(CFStringRef)urlString,NULL,NULL,kCFStringEncodingUTF8);

    如果其中含有已转义的%等符号时,又会再次转义而导致错误,使用方法:

    NSString *encodedString = (NSString *)
        CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
                                                                  (CFStringRef)self,
                                                                  NULL,
                                                                  CFSTR("!*'();:@&=+$,/?%#[]"),
                                                                  kCFStringEncodingUTF8));
        return encodedString;

    此时encodedString就是转换后的网址。

    2.使用类别的方式来使程序便得简洁

    <1>.定义类别,如名字为URL(创建工程为类别,继承自NSString,命名为URL,会生成名字为NSString+URL的.h和.m文件)

    <2>.在.h文件中创建方法 - (NSString *)urlEncodedString;

    <3>.在.m文件中实现(ARC)

    - (NSString *)urlEncodedString {
        NSString *encodedString = (NSString *)
        CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
                                                                  (CFStringRef)self,
                                                                  NULL,
                                                                  CFSTR("!*'();:@&=+$,/?%#[]"),
                                                                  kCFStringEncodingUTF8));
        return encodedString;
    }

    若是MRC,可使用

     

    - (NSString *)urlEncodedString {
        NSString *encodedString = (NSString *)
        CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
                                                (CFStringRef)self,
                                                NULL,
                                                CFSTR("!*'();:@&=+$,/?%#[]"),kCFStringEncodingUTF8);
        return encodedString;
    }

     

     

    <4>.调用时直接使用

    NSString *urlString = [urlStr urlEncodedString];

    生成的urlString就是转换后的地址

    在头文件#import "NSString+URL.h"即可调用

  • 相关阅读:
    C#ActiveX控件开发学习
    SPFA最短路算法
    用宏实现C/C++从非零整数开始的数组
    mysql学习笔记
    python学习笔记(多进程并发)
    python学习笔记(socket模块)
    jQuery学习笔记
    python学习笔记(IO模型)
    Django学习笔记
    导入Excel时启动Excel.exe进程出错
  • 原文地址:https://www.cnblogs.com/xiaochaozi/p/3696291.html
Copyright © 2011-2022 走看看