URL中有中文字符,转码方法
Posted 小屁孩~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了URL中有中文字符,转码方法相关的知识,希望对你有一定的参考价值。
服务端返回的urlString里面有时含有中文,使用
[NSURL URLWithString:urlString]生成URL对象时,iOS客户端不能正确进行网络请求,网上找到的URLEncode方法又不能完全解决问题.
方法1:
NSString* encodedString = [urlStringstringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
方法2:
NSString * encodedString = (NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,(CFStringRef)urlString,NULL,NULL,kCFStringEncodingUTF8);
第一种方法当urlString里含有中文时URL编码是正确的,但是如果其中含有已转义的%等符号时,又会再次转义而导致错误.
NSString *encodedString = (NSString *) CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)self, (CFStringRef)@"!$&‘()*+,-./:;[email protected]_~%#[]", NULL, kCFStringEncodingUTF8);
以上是关于URL中有中文字符,转码方法的主要内容,如果未能解决你的问题,请参考以下文章