当网址中含有中文字符的时候我们无法直接使用,需要把网址的字符串编码后再转为URL,由于url支持26个英文字母、数字和少数几个特殊字符,因此,对于url包含非保准url的字符的时候,就需要对其进行编码。
iOS中提供stringByAddingPercentEscapesUsingEncoding对中文和一些特殊字符进行编码。
但是stringByAddingPercentEscapesUsingEncoding 的功能并不完善,对一些较为特殊的字符无效,对这些字符可以使用 CFURLCreateStringByteAddingPercentEscapes
解码使用
-(NSString *)stringByReplacingPercentEscapesUsingEncoding:(NSStringEncoding)encoding
不过编码这个方法从2.0支持到 9.0后不支持了,建议用
stringByAddingPercentEncodingWithAllowedCharacters 替换
NSString *urlStr = [urlStr stringByAddingPercentEncodingWithAllowedCharacters:[[NSCharacterSet characterSetWithCharactersInString:@"?!@#$^&%*+,:;='\"`<>()[]{}/\\| "] invertedSet]];
网友评论