11

「mystring%201」のように適切にエンコードされていないnsstringを受け取りました。「mystring1」である必要があります。UTF8として解釈される可能性のあるすべての文字を置き換えるにはどうすればよいですか?多くの投稿を読みましたが、完全な解決策ではありません。 nsstringはすでに間違ってエンコードされており、charシーケンスをエンコードする方法については質問していないことに注意してください。ありがとうございます。

4

5 に答える 5

34

- (NSString *)stringByReplacingPercentEscapesUsingEncoding:(NSStringEncoding)encodingあなたが望むものです。基本的には次のように使用します。

newString = [myString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
于 2012-08-02T21:35:56.140 に答える
2

Formatting String ObjectsStrings and Non-ASCII Charactersのセクションを確認してください。

NSString *s = [NSString stringWithUTF8String:"Long \xe2\x80\x94   dash"];
于 2012-08-02T21:32:43.080 に答える
1

パーセントのエンコーディング/デコーディングまたは完全な URL のエンコーディング/デコーディングが必要ですか? -(NSString*)stringByReplaceingPercentEscapesUsingEncoding: パーセント エンコーディングだけの場合は機能しますが、そこに完全な URL エンコーディングがある場合 (たとえば、スペースは %20 または + のいずれかになります)、URL デコードのようなものが必要になりますthree20 ライブラリ (またはそこで検索してください。URL のデコード/エンコード NSStringなど、それを行う方法の例がたくさんあります)。

于 2012-08-02T21:42:21.590 に答える