url 编码和解码

- (NSString*)encodeURL:(NSString *)string

{

NSString *newString = NSMakeCollectable([(NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)string, NULL, CFSTR(":/?#[]@!$ &'()*+,;=\"<>%{}|\\^~`"), CFStringConvertNSStringEncodingToEncoding([self stringEncoding])) autorelease]);

if (newString) {

return newString;

}

return @"";

}


decodeURL

CFStringRef CFURLCreateStringByReplacingPercentEscapesUsingEncoding(CFAllocatorRef allocator, CFStringRef origString, CFStringRef charsToLeaveEscaped, CFStringEncoding encoding)


+ (NSString *)decodeUTF8ToChinese:(NSString *)encodeStr;

{

return [encodeStr stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

}


+ (NSString *)encodeChineseToUTF8:(NSString *)encodeStr;

{

return [[NSString stringWithFormat:@"%@",encodeStr] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

}


+ (NSString *)encodeURL:(NSString *)string endcode:(NSStringEncoding)stringEncoding

{

NSString *newString = NSMakeCollectable([(NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)string, NULL, CFSTR(":/?#[]@!$ &'()*+,;=\"<>%{}|\\^~`"), CFStringConvertNSStringEncodingToEncoding(stringEncoding)) autorelease]);

if (newString) {

return [newString autorelease];

}

    

return @"";

}


+ (NSString *)encodeURL:(NSString *)string

{

NSString *newString = NSMakeCollectable([(NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)string, NULL, CFSTR(":/?#[]@!$ &'()*+,;=\"<>%{}|\\^~`"), CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding)) autorelease]);

if (newString) {

return newString;

}

    

return @"";

}


+ (NSString*)encodeURL:(NSString *)originalString stringEncoding:(NSStringEncoding)stringEncoding

{

    //!  @  $  &  (  )  =  +  ~  `  ;  '  :  ,  /  ?

    //%21%40%24%26%28%29%3D%2B%7E%60%3B%27%3A%2C%2F%3F

    NSArray *escapeChars = [NSArray arrayWithObjects:@";" , @"/" , @"?" , @":" ,

                            @"@" , @"&" , @"=" , @"+" ,    @"$" , @"," ,

                            @"!", @"'", @"(", @")", @"*", nil];

    

    NSArray *replaceChars = [NSArray arrayWithObjects:@"%3B" , @"%2F", @"%3F" , @"%3A" ,

                             @"%40" , @"%26" , @"%3D" , @"%2B" , @"%24" , @"%2C" ,

                             @"%21", @"%27", @"%28", @"%29", @"%2A", nil];

    

    int len = [escapeChars count];

    

    NSMutableString *temp = [[originalString

                              stringByAddingPercentEscapesUsingEncoding:stringEncoding]

                             mutableCopy];

    

    int i;

    for (i = 0; i < len; i++) {

        

        [temp replaceOccurrencesOfString:[escapeChars objectAtIndex:i]

                              withString:[replaceChars objectAtIndex:i]

                                 options:NSLiteralSearch

                                   range:NSMakeRange(0, [temp length])];

    }

    

    NSString *outStr = [NSString stringWithString: temp];

    

    return outStr;

}



+ (NSString*)encodeXML:(NSString *)originalString

{

    //

    //    string = [string stringByReplacingOccurrencesOfString:@"&quot;" withString:@"\""];

    //    string = [string stringByReplacingOccurrencesOfString:@"&apos;" withString:@"'"];

    //    string = [string stringByReplacingOccurrencesOfString:@"&amp;" withString:@"&"];

    //    string = [string stringByReplacingOccurrencesOfString:@"&lt;" withString:@"<"];

    //    string = [string stringByReplacingOccurrencesOfString:@"&gt;" withString:@">"];

    

    //不包换双引号:@"&quot;" @"\""

    

    NSArray *escapeChars = [NSArray arrayWithObjects:@"'" , @"&" , @"<" ,

                            @">", nil];

    NSArray *replaceChars = [NSArray arrayWithObjects:@"&apos;", @"&amp;" , @"&lt;" ,

                             @"&gt;", nil];

    

    int count = [escapeChars count];

    NSMutableString *temp = [[originalString  mutableCopy] autorelease];

    for(int i = 0; i < count; i++)

    {

        

        [temp replaceOccurrencesOfString:[escapeChars objectAtIndex:i]

                              withString:[replaceChars objectAtIndex:i]

                                 options:NSLiteralSearch

                                   range:NSMakeRange(0, [temp length])];

    }

    

    NSString *outStr = [NSString stringWithString:temp];

    

    return outStr;

}


+ (NSString*)decodeXML:(NSString *)originalString

{

    NSArray *escapeChars = [NSArray arrayWithObjects:@"&quot;" , @"&apos;", @"&amp;" , @"&lt;" ,

                            @"&gt;",@"&#xD;", nil];

    NSArray *replaceChars = [NSArray arrayWithObjects:@"\"" , @"'" , @"&" , @"<" ,

                             @">", @"\r",nil];

    int count = [escapeChars count];

    NSMutableString *temp = [[originalString  mutableCopy] autorelease];

    for(int i = 0; i < count; i++)

    {

        

        [temp replaceOccurrencesOfString:[escapeChars objectAtIndex:i]

                              withString:[replaceChars objectAtIndex:i]

                                 options:NSLiteralSearch

                                   range:NSMakeRange(0, [temp length])];

    }

    

    NSString *outStr = [NSString stringWithString:temp];

    

    return outStr;

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值