0

アンパサンド "&" を含むテキストを Web サービスに投稿していますが、Objective C アプリケーションで問題が発生しています。

どうにかして逃がさないといけない。

何かアイデアはありますか?...私は現時点でObjective CとiPhoneのプログラミングに非常に慣れていません...

4

2 に答える 2

1

これは、 でいくつかの値を渡そうとしたときに発生し、その値にはでパラメーターを区切るために使用される がURL含まれているため、Web サーバーはコンテンツを単一の連続値として取得するのではなく、 問題を解決するには、文字列を URL エンコードします。&URL&

NSString *valueToSubmit = @"This is my value which contains & in it.";
NSString *urlEncodedString  = (NSString*)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(NULL,(CFStringRef)valueToSubmit,NULL,(CFStringRef)@"!*'();:@&=+$,/?%#[]",kCFStringEncodingUTF8));
NSLog(@"Non-Encoded: %@ \n Encoded: %@",valueToSubmit,urlEncodedString];

出力は次のようになります。

エンコードされていない: これは & を含む私の値です。
エンコードされた URL: この%20is%20my%20value%20which%20contains%20%26%20in%20it.
于 2013-08-07T05:11:20.963 に答える
0

「パンとバター」のようなものを投稿していると思いますが、Web サービスで表示されるものには、 & とその後の数文字、またはその場所に奇妙な文字が含まれていない可能性があります。& を に置き換えてみてください。&amp;上の例では、「ブレッド &amp;バター」を投稿します。< または > と他のいくつかの文字を送信しようとすると、同様の問題が発生します。NSString HTML エスケープをグーグルで検索すると、これを行うのに役立つ Objective C のカテゴリが見つかります。

www.mysite/foo&bar.html のような URL の場合は、& を %26 に置き換えます。つまり、www.mysite/foo%26bar.html のようになります。同じことがクエリ文字列にも当てはまります。& を %26 に置き換えます

于 2013-08-07T05:04:21.263 に答える