2009-03-30 6 views
5

httpリクエストの中にはURLに「スペース」がありますが、iPhoneでは認識されません。私は、URLに「スペース」があるときはいつでも「スペース」を「%20」に変更する必要があります。今私は、サーバーにユーザーによって入力されたメッセージを送信する必要があり、それは、ユーザーが好きなだけ多くの「スペース」を持つことができます。 (stringByReplacingOccurrencesOfString)iPhoneのURLでNSStringの文字についての質問

「スペース」を「%20」に変換することは時々見つけたものです。私の質問は、NSStringの他の文字のどれがiPhoneのURLで直接使用できないのでしょうか?

答えて

19

私は、これはより良いアプローチだと思う:

NSString* escapedUrl = [originalUrl 
stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

あなたはURLエンコードがどのように機能するかを理解したい場合は、このURLを見てみましょう。

1

完全な詳細については、RFC 2396を参照してください。以下の文字はエスケープする必要があります。

{ } | \^[ ] `

 
Control characters (ASCII 00-1F and 7F) 
Space 
< 
> 
# 
% 
" 

次の文字は、いくつかのゲートウェイや他のトランスポートエージェントが、時にはそのような文字を変更することが知られている、または彼らは区切り文字として使用されているので、エスケープせずに使用することが賢明です

関連する問題