"mystring%201"のように適切にエンコードされていないnsstringを受け取っています。 "mystring 1"である必要があります。UTF8として解釈される可能性のあるすべての文字をどのように置き換えることができますか?多くの投稿を読みましたが、完全なソリューションではありません。 nsstringはすでに正しくエンコードされておらず、charシーケンスのエンコード方法については尋ねていません。
- (NSString *)stringByReplacingPercentEscapesUsingEncoding:(NSStringEncoding)encoding
が必要です。基本的には次のように使用します。
newString = [myString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
Strings and Non-ASCII Characters
Formatting String Objects のセクション:
NSString *s = [NSString stringWithUTF8String:"Long \xe2\x80\x94 dash"];
lblDate.text=[NSString stringWithCString:[[arrTripDetail valueForKey:Param_vCurrencySymbol] UTF8String] encoding:NSUTF8StringEncoding];
カスタム絵文字を文字列に変換して取得できます
例:
入力:\ U20b9
出力:₹
パーセントエンコード/デコードまたは完全なURLエンコード/デコードが必要ですか? NSString *)stringByReplacingPercentEscapesUsingEncoding:パーセントエンコーディングの場合は機能しますが、そこに完全なURLエンコーディングがある場合(たとえば、スペースが%20または+の場合)、URLデコードのようなものが必要になりますthree20ライブラリ(またはその上で検索してください---(URLデコード/エンコードNSString など、その方法の例がたくさんあります)。