私は今夜中これに対する解決策を見つけようとしています...
Webサーバーにデータを要求するアプリを作成します。サーバーはJSON形式で応答します。アプリにäのようなumlautを入力する場合を除いて、すべてがうまく機能します。
以下では、リクエストURLがhttp://example.com/?q=であると想定し、「Jäger」を検索しています。
その場合、正しい呼び出しはh ++ p://example.com/?q = J%C3%A4gerになります(プラス記号は申し訳ありませんが、スパム保護では正しく投稿できません)。
だから私の問題は今です:
URL文字列をエンコードまたはエンコード解除してHttpGetに渡すと、常に二重エンコードされたURLになります。
サーバーへのリクエストはhttp://example.com/?q=J%25C3%25A4ger(パーセント記号をエンコードします)であり、サーバーはデータベースでJ%C3%A4gerを検索します。これは明らかに間違っています。
だから私の質問は、ユーザーが「イェーガー」と入力した場合、私のアプリが正しくエンコードされたURLを呼び出すことをどのように達成できるかということです。
助けてくれてありがとう!
これが現在使用されているコードです...おそらく私が持っていた最悪のアイデアです...
URI url = new URI("http", "//example.com/?q=" + ((EditText)findViewById(R.id.input)).getText().toString(), null);
Log.v("MyLogTag", "API Request: " + url);
HttpGet httpGetRequest = new HttpGet(url);
// Execute the request in the client
HttpResponse httpResponse;
httpResponse = defaultClient.execute(httpGetRequest);