不正な記号のパーセントエスケープに使用されるカテゴリメソッドに問題があります。NULLを返すCFURLCreateStringByAddingPercentEscapes
これは私が仕事のために使用していますコードです:私は上記のマッチング文字列で見つかったシンボルのいずれかの文字列なしでこのメソッドを実行し、これまで、この方法がうまく実行されると
@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:ヌル、セルフ:テスト&シンボル
したがって、CFURLCreateStringByAddingPercentEscapesを使用すると何か問題があるようです。
&のような記号は、クエリ文字列の値として使用される文字列で発生する可能性があり、クエリ文字列を誤って解釈する可能性があります。
ここで問題が発生する可能性がありますか?
ありがとうございます!/Magnus
このスレッドを見てみましょう:http://stackoverflow.com/a/730427/1228534 – graver
神ああ...このため、長い一日にそれをされています。質問を削除するにはどうすればよいですか?それは、NSStringEncodingを望んでいた私のカテゴリメソッドに間違ったタイプのエンコーディング(CF)を送り出したことが判明しました。*机の上に頭を打つ* – Mange
あなたはそれを回答として投稿し、それを受け入れることができます。 –