url在ios中编码

时间:2013-04-08 08:09:00

标签: iphone url encoding urlencode

我从服务器到图像的链接已经是编码所以它附带%20 但有时我得到的代码包括希伯来字符,所以我需要做编码agian,用上面的代码:

但在我的编码之后,我得到的回答是%20更改为%2520

static CFStringRef charsToEscape = CFSTR("&=");

    + (NSString *)escapeStringByAddingPercentEscapes: (NSString*) string {

        return [(NSString *)CFURLCreateStringByAddingPercentEscapes(NULL,
                                                                    (CFStringRef)string,
                                                                    NULL,
                                                                    charsToEscape,
                                                                    CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding)) autorelease];
    }

我试图将%添加到charsToEscape,如下所示:

static CFStringRef charsToEscape = CFSTR(“& =%”);

但它没有帮助。

感谢

2 个答案:

答案 0 :(得分:2)

NSString *urlString = @"----YOUR URL HERE----";
[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString:urlString];

答案 1 :(得分:1)

如果我没有在链接中获得希伯来字符,那么你的想法很好。

但是我找到了解决方案,我刚刚在参数legalURLCharactersToBeEscaped发送了%

现在我在这样的函数中使用:

static CFStringRef charsToEscape = CFSTR("&=");
static CFStringRef charsUnchanged = CFSTR("%");

    + (NSString *)escapeStringByAddingPercentEscapes: (NSString*) string {

        return [(NSString *)CFURLCreateStringByAddingPercentEscapes(NULL,
                                                                    (CFStringRef)string,
                                                                    charsUnchanged,
                                                                    charsToEscape,
                                                                    CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding)) autorelease];
    } 

谢谢