在公司項目中,視頻播放的時候,url可能已經(jīng)utf-8轉(zhuǎn)碼了,也可能未轉(zhuǎn)碼而包含中文,對url中的中文進行轉(zhuǎn)碼時,如果url中的中文已經(jīng)是utf-8轉(zhuǎn)碼了,那么會二次轉(zhuǎn)碼,在項目需求中url就無效
// 對url中的中文進行轉(zhuǎn)碼(如果已知url中的中文沒有進行utf-8轉(zhuǎn)碼)
url = [url stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
如果知道url中的中文既可能已經(jīng)轉(zhuǎn)碼,也可能沒有轉(zhuǎn)碼,那么使用如下的方法,當(dāng)不管url中的中文是否已經(jīng)utf-8轉(zhuǎn)碼了,都可以解決將中文字符轉(zhuǎn)為utf-8的問題,且不是二次轉(zhuǎn)碼
NSLog(@"原url:%@", url);
NSString *encodedString = (NSString *)
CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
(CFStringRef)url,
(CFStringRef)@"!$&'()*+,-./:;=?@_~%#[]",
NULL,
kCFStringEncodingUTF8));
NSLog(@"轉(zhuǎn)碼url:%@", encodedString);