zoukankan      html  css  js  c++  java
  • iOS 的url中含有中文解决方法

    [NSURLURLWithString:urlString]生成URL对象时,iOS客户端不能正确进行网络请求,网上找到的URLEncode方法又不能完全解决问题.

    方法1:

    NSString* encodedString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    方法2:

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

    这两种方法当urlString里含有中文时URL编码是正确的,但是如果其中含有已转义的%等符号时,又会再次转义而导致错误.

    查看方法2参数说明:

    CFStringRef CFURLCreateStringByAddingPercentEscapes(CFAllocatorRef allocator,CFStringRef originalString, CFStringRef charactersToLeaveUnescaped, CFStringRef legalURLCharactersToBeEscaped,CFStringEncoding encoding);

    因此做出修改,写出方法:

    NSString *encodedString = (NSString *)

    CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,

    (CFStringRef)urlString,

    (CFStringRef)@"!$&'()*+,-./:;=?@_~%#[]",

    NULL,

    kCFStringEncodingUTF8);

    本文参考自

    https://www.jianshu.com/p/ed64b583002c

  • 相关阅读:
    day 46
    day 45 JavaScript 下 函数
    day 42 css 样式
    44 JavaScript
    41 前端
    40 协程 i/0多路复用
    39 线程池 同一进程间的队列
    38 线程 锁 事件 信号量 利用线程实现socket 定时器
    37 生产者消费者模型 管道 进程间的数据共享 进程池
    演示使用string对象
  • 原文地址:https://www.cnblogs.com/isItOk/p/4679400.html
Copyright © 2011-2022 走看看