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"即可调用

  • 相关阅读:
    hdu 1124 OR toj 1065 简单数论
    this和判断的位置对赋值的要求
    快捷键操作
    常量池和堆的区别
    toString的用法
    使用泛型解决之前的问题
    不使用泛型会运行时会出现的问题
    集合图型
    代码块运行的优先级
    遍历集合的Iterator删除其中的元素
  • 原文地址:https://www.cnblogs.com/xiaochaozi/p/3696291.html
Copyright © 2011-2022 走看看