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

      

  • 相关阅读:
    sql执行的顺序
    $(obj).index(this) 与 $(this).index()的区别
    java取得百分比
    取得input的特殊值
    清除select的边框和三角形
    在jsp页面中获取列表长度
    mysql mybatis 批量更新和新增
    oracle mybatis 批量更新和新增
    jstl if else 判断
    判断radio,select,checkbox是否选中的方法
  • 原文地址:https://www.cnblogs.com/joesen/p/3247043.html
Copyright © 2011-2022 走看看