不正なシンボルをパーセント エスケープするために使用されるカテゴリ メソッドに問題があります。
これは私がタスクに使用しているコードです:
@implementation NSString (URLEncoding)
-(NSString *)urlEncodeUsingEncoding:(NSStringEncoding)encoding {
NSString *s = (NSString *)CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)self, NULL, (CFStringRef)@"!*'\"();:@&=+$,/?%#[]% ",CFStringConvertNSStringEncodingToEncoding(encoding));
NSLog(@"S: %@, Self: %@", s, self);
return [s autorelease];
}
@end
上記の一致する文字列で見つかった記号のない文字列でこのメソッドを実行すると、メソッドは正常に実行され、同じ文字列が返されます。
たとえば、@"test"
出力されるような文字列がある場合:
S: テスト、セルフ: テスト
しかし、代わりに次のような文字列を使用すると、次のよう@"test&symbols"
に出力されます。
S: null、自己: test&symbols
したがって、CFURLCreateStringByAddingPercentEscapes の使用に何か問題があるようです。
& などの記号をエスケープしたいのは、クエリ文字列の値として使用される文字列で発生する可能性があり、クエリ文字列が誤って解釈される可能性があるためです。
ここで何が問題なのかについて何か考えはありますか?
前もって感謝します!/ マグナス