- 2009-01-16 (金) 1:15
- iPhone SDK / Cocoa / Objective-C
NSStringを指定した文字コードでURLエンコードします。
一瞬 stringByAddingPercentEscapesUsingEncoding: のみで事足りそうに思うのですが、それだけだと下記コード中の escapeChars にある文字達が残ってしまいます。
@implementation NSString (URLEncoding) -(NSString *)stringByURLEncoding:(NSStringEncoding)encoding { NSArray *escapeChars = [NSArray arrayWithObjects: @";" ,@"/" ,@"?" ,@":" ,@"@" ,@"&" ,@"=" ,@"+" ,@"$" ,@"," ,@"[" ,@"]" ,@"#" ,@"!" ,@"'" ,@"(" ,@")" ,@"*" ,nil]; NSArray *replaceChars = [NSArray arrayWithObjects: @"%3B" ,@"%2F" ,@"%3F" ,@"%3A" ,@"%40" ,@"%26" ,@"%3D" ,@"%2B" ,@"%24" ,@"%2C" ,@"%5B" ,@"%5D" ,@"%23" ,@"%21" ,@"%27" ,@"%28" ,@"%29" ,@"%2A" ,nil]; NSMutableString *encodedString = [[[self stringByAddingPercentEscapesUsingEncoding:encoding] mutableCopy] autorelease]; for(int i=0; i<[escapeChars count]; i++) { [encodedString replaceOccurrencesOfString:[escapeChars objectAtIndex:i] withString:[replaceChars objectAtIndex:i] options:NSLiteralSearch range:NSMakeRange(0, [encodedString length])]; } return [NSString stringWithString: encodedString]; } @end
# なんでもかんでもカテゴリにすればよいというものではないのは分かっているのですが、つい…。
関連する投稿
- Older: 非公開APIの使い方
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://iphone-dev.ensites.net/archives/573/trackback
- Listed below are links to weblogs that reference
- CocoaでURLエンコード from iPhoneアプリ開発ブログ