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

  • 相关阅读:
    python爬虫 关于Max retries exceeded with url 的错误
    爬虫最新的库requestshtml库总结
    adb命令将抓包工具证书从用户目录移动至系统目录,解决反爬对于本地证书认证
    imei码生成
    利用Frida修改Android设备的唯一标识符
    linux下启动selenium爬虫并安装谷歌浏览器和驱动
    JS输出为[object Object] 如何解决
    【转载】Vim 的 tab 设置
    python实现的斐波那契数列
    MySQL设置UTF8字符
  • 原文地址:https://www.cnblogs.com/xiaochaozi/p/3696291.html
Copyright © 2011-2022 走看看