アンパサンド "&" を含むテキストを Web サービスに投稿していますが、Objective C アプリケーションで問題が発生しています。
どうにかして逃がさないといけない。
何かアイデアはありますか?...私は現時点でObjective CとiPhoneのプログラミングに非常に慣れていません...
アンパサンド "&" を含むテキストを Web サービスに投稿していますが、Objective C アプリケーションで問題が発生しています。
どうにかして逃がさないといけない。
何かアイデアはありますか?...私は現時点でObjective CとiPhoneのプログラミングに非常に慣れていません...
これは、 でいくつかの値を渡そうとしたときに発生し、その値にはでパラメーターを区切るために使用される が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.
「パンとバター」のようなものを投稿していると思いますが、Web サービスで表示されるものには、 & とその後の数文字、またはその場所に奇妙な文字が含まれていない可能性があります。& を に置き換えてみてください。&
上の例では、「ブレッド &
バター」を投稿します。< または > と他のいくつかの文字を送信しようとすると、同様の問題が発生します。NSString HTML エスケープをグーグルで検索すると、これを行うのに役立つ Objective C のカテゴリが見つかります。
www.mysite/foo&bar.html のような URL の場合は、& を %26 に置き換えます。つまり、www.mysite/foo%26bar.html のようになります。同じことがクエリ文字列にも当てはまります。& を %26 に置き換えます