2017-04-16 16 views
-1

Androidの検索機能を実装しようとしましたが、クエリをフィルタリングすると、this link,thisなどが続きました。Android URLEncoder.encode未処理の例外java.io.UnsupportedEncodingException

try { 
    URLEncoder.encode(queryStr, "UTF-8"); 
} catch (UnsupportedEncodingException e) { 
    Log.e("Yourapp", "UnsupportedEncodingException"); 
} 

あなたがこれを取得している理由は:しかし、Androidのメーカーで、私はこのメッセージunhandled exception java.io.UnsupportedEncodingExceptionを得た、これは私のコードあなたはtry-catchブロックであなたのURLEncoder.encode() -methodをラップする必要が

import java.net.URLEncoder;` 
private void doSearch(String queryStr) { 
    // get a Cursor, prepare the ListAdapter 
    // and set it 
    //Log.e("Query",queryStr); 
    searchRestaurants(URLEncoder.encode(queryStr, "UTF-8"));} 
+0

これを行う目的は何ですか? – azizbekian

+0

検索バーに「入力」すると、私のアプリケーションが停止しました。私のサーバー側の設定で、私は '文字を許可していないので、検索結果はnullです –

答えて

0

です一部のプラットフォームでUTF-8エンコーディングがサポートされていない可能性があります。 Androidは間違いなく、この例外を受け取ることは決してありませんが、コンパイラを幸せにするためにはまだそれを処理する必要があります。

しかし、あなたのコードは何もしません。encode()操作の結果を変数に保存する必要があります。 String myEncodedQuery = URLEncoder.encode(queryStr, "UTF-8");

+0

Wat?私は文字通りシルバー・プラッターでOPにコードを渡しました。さまざまなオペレーティングシステムでコピー/ペースト操作を実行する方法についてのリンクも提供しています。 – Miraduro

+0

私はtry catchについて知りません。次のコード 'URLEncoder.encode(queryStr、" UTF-8 ")を書きます。 Retrofit retrofit = new Retrofit.Builder() .baseUrl(定数.BASE_URL) .addConverterFactory(GsonConverterFactory.create()) 。ビルド(); レストランレトロフィットリクエスト= retrofit.create(RestaurantsRetrofit.class); call = request.searchRestaurants(queryStr) ' –

+0

あなたの質問で策定した問題について実際に質問していない場合は、質問を更新してください。 – Miraduro

0
import java.net.URLEncoder; 
private void doSearch(String queryStr) { 
    // get a Cursor, prepare the ListAdapter 
    // and set it 
    //Log.e("Query",queryStr); 
    try { 
     final String encodedPath = URLEncoder.encode(queryStr, "UTF-8")); 
     searchRestaurants(encodedPath); 
    } catch (UnsupportedEncodingException ec) { 
     Log.d(TAG, ec.printStacktrace); 
    } 
}