平时在后台返回的链接中,经常会出现中文或者特殊字符,需要我们进行转码,否则不能正确的显示或者跳转,这个时候不能奢求后台那边转码给我们,而是我们需要行程一个习惯,在我们加载这个url链接之前进行一次转码操作,而经过大量实验,下面的方式是最有效好用实用的转码方式:
NSString *encodedString = (NSString *)
CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
(CFStringRef)needTranslateUrlString,
(CFStringRef)@"!$&'()*+,-./:;=?@_~%#[]",
NULL,
kCFStringEncodingUTF8));
或者:
//针对中文
[urlStr stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
//规定特殊字符或者换行
[urlStr stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet characterSetWithCharactersInString:@"!$&'()*+,-./:;=?@_~%#[]"]];
小伙伴们可以尝试一下。