【问题标题】:stringbyaddingpercentescapesusingencoding:NSUTF8StringEncoding not converting some special charactersstringbyaddingpercentescapesusingencoding:NSUTF8StringEncoding 不转换某些特殊字符
【发布时间】:2014-07-15 10:04:12
【问题描述】:

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

冲突前的蜇伤:Macklemore 和 Ryan Lewis - Can't Hold Us

碰撞后的刺痛:Macklemore%20&%20Ryan%20Lewis%20-%20Can't%20Hold%20Us

在上面的字符串中&,-,'没有变化

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

【问题讨论】:

    标签: ios objective-c ios7 nsstring


    【解决方案1】:

    试试这个

    示例

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

    // 添加特殊字符

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

    【讨论】:

      【解决方案2】:

      您应该使用 NSNonLossyASCIIStringEncoding 代替 NSUTF8StringEncoding

      stringbyaddingpercentescapesusingencoding:NSNonLossyASCIIStringEncoding
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-03
        • 1970-01-01
        • 2022-07-10
        • 1970-01-01
        • 2017-05-23
        • 2013-11-07
        相关资源
        最近更新 更多