2012-01-14 16 views
0

IOS5の下でobjective-cで非常に簡単な作業をしたい:URL文字列をエスケープされた表現に変換する。目的地のURL文字列エスケープ表現? ( "パーセントエンコーディング")

私はそれを行う方法はたくさんありましたが、どちらもうまくいかなかったようです。

stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncodingが動作しません。それはÃííűőüöúóéのような文字を変換するが、=のような他の文字は変換しない。

私は、.netのUri.EscapeDataString(http://msdn.microsoft.com/en-us/library/system.uri.escapedatastring.aspx)のような機能を持っています。

ありがとうございます!あなたがNSStringにカテゴリを追加することができ

答えて

1

その

- (NSString *)ps_stringByAddingPercentEscapes; 
{ 
    return [(NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, 
                   (CFStringRef)self, 
                   NULL, 
                   (CFStringRef)@":/?#[]@!$&’()*+,;=", 
                   kCFStringEncodingUTF8) autorelease]; 
} 

のようなものは、あなたが気に文字用@":/?#[]@!$&’()*+,;="を交換しません。

+0

私はそれがフレームワークに含まれるべき非常に単純で基本的な機能だと思った:O – Tom

+0

です! CFURLCreateStringByAddingPercentEscapesはOSフレームワークの一部です。 – StilesCrisis

+0

@StilesCrisis彼はそれが「財団」の一部となることを意味していたと思う。 'CoreFoundation'に落とさなければならないのは奇妙なことです。 Docsは 'もっと複雑な変換のためにCFURLCreateStringByReplacingPercentEscapesを参照してください 'と言っていますが、なぜNSASCIIStringEncodingがまだそれをカバーしていないのかわかりません。 –

関連する問題