stringbyaddingpercentescapesusingencoding:NSUTF8StringEncoding不转换某些特殊字符

时间:2014-07-15 10:04:12

标签: ios objective-c ios7 nsstring

在我的应用中,我使用stringbyaddingpercentescapesusingencoding:NSUTF8StringEncoding转换特殊字符。但有些角色(如&, - ,')没有转换。

在诉讼前蜇:Macklemore&莱恩刘易斯 - 不能抱着我们

锥形之后的刺痛:Macklemore%20&%20Ryan%20Lewis%20-%20Can't%20Hold%20Us

在上面的字符串中,&,-,'

没有变化

我该如何解决这个问题。请建议我。

2 个答案:

答案 0 :(得分:0)

试试这个

示例

NSLog(@"%@",[self urlEncodeUsingEncoding:kCFStringEncodingUTF8 WithURLString:@"&-"]);

//添加特殊字符

    - (NSString *)urlEncodeUsingEncoding:(CFStringEncoding)encoding WithURLString:(NSString *)strUrl {

    return CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
                                                                     ( CFStringRef)strUrl,
                                                                     NULL,
                                                                     CFSTR("!*'()+$#[]&-"),
                                                                     encoding));
}

答案 1 :(得分:0)

您应该使用NSNonLossyASCIIStringEncoding代替NSUTF8StringEncoding

stringbyaddingpercentescapesusingencoding:NSNonLossyASCIIStringEncoding