zoukankan      html  css  js  c++  java
  • iOS Get方式带中文不能请求网络

    今天发现一个蛋疼的问题,使用ASIHTTPRequest  Get方式请求数据时候带中文,iOS客户端不能正确进行网络请求。
    NSURL *url = [NSURL URLWithString:@http://unmi.cc?p1=%+&sd f&p2=中文"];
    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
    打印出来url为nil  还好,在网上找到了如下方法就可以解决这个问题
     
    //NSString+URLEncoding.h
    #import<Foundation/Foundation.h>
    @interface NSString (OAURLEncodingAdditions)
     
    - (NSString *)URLEncodedString;
     
    - (NSString *)URLDecodedString;
    @end
     
     
    //NSString+URLEncoding.m
    #import"NSString+URLEncoding.h"
    @implementation NSString (OAURLEncodingAdditions)
     
    - (NSString *)URLEncodedString 
    {
       NSString*result = (NSString*)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
                                                                               (CFStringRef)self,
                                                                               NULL,
      CFSTR("!*'();:@&=+$,/?%#[]"),
                                                                               kCFStringEncodingUTF8);
        [result autorelease];
    return result;
    }
     
    //解决url乱码
    - (NSString*)URLDecodedString
    {
    NSString*result = (NSString*)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(kCFAllocatorDefault,
      (CFStringRef)self,
      CFSTR(""),
      kCFStringEncodingUTF8);
        [result autorelease];
    return result;
    }
    
    // 调用方法
     NSString *encodedString = [urlString URLEncodedString];
    

      

  • 相关阅读:
    人工智能与信号处理--看知乎问答有感.
    nginx 负载均衡及反向代理
    sqlserver 分页查询
    sqlserver 游标使用
    ffmpeg参数编码大全
    C# 阿里云查询、删除文件
    视频分片上传+C#后端合并
    ffmpeg 视频合并
    C# 根据链接提取div内容
    electron-vue 设置cookie
  • 原文地址:https://www.cnblogs.com/joesen/p/3247043.html
Copyright © 2011-2022 走看看