Android URLEncoder.encode未处理的异常java.io.UnsupportedEncodingException

时间:2017-04-16 18:23:45

标签: java android

我尝试实施Android搜索,我想过滤查询,我关注this linkthis和其他人。但在Android Studio中,我收到了此消息unhandled exception java.io.UnsupportedEncodingException,这是我的代码

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"));}

2 个答案:

答案 0 :(得分:0)

您需要将URLEncoder.encode() - 方法包装在try-catch块中:

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

您收到此错误的原因是某些平台可能不支持UTF-8编码。 Android肯定会这样做,所以你永远不会收到这个异常,但你仍然需要处理它以使编译器满意。

但是,您的代码不会执行任何操作,您需要将encode() - 操作的结果存储在变量中,例如: String myEncodedQuery = URLEncoder.encode(queryStr, "UTF-8");

答案 1 :(得分: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);
    }
}