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];
    

      

  • 相关阅读:
    hdu 1716 排列
    codevs 2597 团伙
    创建了一个静态数组,越界访问为什么不报错
    hdu 2083 简易版之最短距离
    hdu 2073 无限的路
    hdu 2060 Snooker
    hdu 1877
    hdu 1042 N!
    hdu 1799 循环多少次?
    百练:2972 确定进制
  • 原文地址:https://www.cnblogs.com/joesen/p/3247043.html
Copyright © 2011-2022 走看看