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

  • 相关阅读:
    arcgis 图幅结合图表工具
    Geoprocessor clip
    Spring Boot总结,核心功能,优缺点
    代码下载python 简体和繁体的转换
    电话错误fmxl Missing handler script
    nullnull使用ps绘制像word里面的箭头
    nullnulljava把过滤掉的 % 号拿回来
    问题总结两天来两场实习面试(中科创达、华为)
    模板拷贝【便利贴】Struts性能优化
    匹配优先级Spring攻略学习笔记(3.04)指定Aspect优先级
  • 原文地址:https://www.cnblogs.com/xiaochaozi/p/3696291.html
Copyright © 2011-2022 走看看