4

iPhone アプリの URL でキリル文字をパラメーターとして渡す必要があります。サンプル URL は次のようになります。

http://www.mysite.com/script.php?message =страшная

この URL をブラウザで使用すると、正しい結果が返されます。しかし、私のアプリでは、キリル文字は好まれず、didFailWithErrorコードで「悪い URL」を取得してしまいます。

これを回避するためにブラウザでいくつかのエンコーディングを試しましたが、うまくいきませんでした。上記の正確な URL の例を iPhone アプリ経由で実際に送信する方法はありますか? 私が使用しているコードのスニペットは次のとおりです。

selectedWord = @"страшная";
NSString *requestURL = [NSString stringWithFormat:@"http://www.mysite.com/script.php?message=%@", selectedWord];
NSLog (requestURL);
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:requestURL]];

[[NSURLConnection alloc] initWithRequest:request delegate:self];

上記のコードでは、デバッグ目的でNSString *selectedWordにキリル文字をハードコーディングしました。実際のアプリケーションでは、ユーザー入力に基づいて動的になります。

キリル文字をテキストではなくデータとして渡すことができると考えて、より複雑なPOSTを試しましたが、間違っているか、機能しません。

ブラウザで試してからアプリに実装できるエンコーディングに関する例は役に立ちます。NSURLでキリル文字が拒否されていることに気付きましたが、別のコードまたはエンコーディングでそれを回避する方法があることを望んでいました。

4

1 に答える 1

15

次のように変更するとどうなりますか。

encodedSelectedWord = [selectedWord stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *requestURL = [NSString stringWithFormat:@"http://www.mysite.com/script.php?message=%@", encodedSelectedWord];

ドキュメントリンク

于 2010-10-12T05:48:16.133 に答える