2011-10-21 5 views
5

Webサービスを呼び出す必要があるという問題が発生しました。私は、UTF-8でエンコードされたURL文字列を生成する必要があります。AndroidでのUTF-8変換?

public String encodeUTF(String str) { 

     try { 
      byte[] utf8Bytes = str.getBytes("UTF-8"); 

      String encodedStr = new String(utf8Bytes, "UTF-8"); 

      return encodedStr; 
     } catch (UnsupportedEncodingException e) { 
      e.printStackTrace(); 
     } 
     return str; 
    } 

しかし、それでもまだ、私は同じ値を取得しています:パラメータがスペースを含む場合があるので、私はUTF-8にエンコードするためにコードの部分の下に使用しています。このため、私はサービスを呼び出す際に不正な引数の例外を取得しています。何か案は? UTFエンコーディング用の

+0

「スペースが含まれている可能性があるため、URLのUTF-8エンコード」?あなたはそれがあなたがしたいことだと確信していますか? UTF-8スペースはASCIIスペースと同じです。 URLエンコード*したくないですか? – deceze

+0

@deceze:はい。それは私がそれをしたいと思うものです。 – Praveen

+0

@Praveenどのように問題を解決しましたか? – frayab

答えて

11

この - >URLEncoder.encode(string, "UTF-8");

また、あなたは、スペースを変更する必要がある - >string.replace(" ", "%20");

6

ちょうどそれを試してみてください。

URLEncoder.encode(str, "UTF-8"); 
+0

今、私は違法な引数の例外を取得していません。しかし、私はhttpの応答例外があります:悪い要求。何か考えていますか? – Praveen

+0

@Paresh Mayani:はい。 – Praveen

2

あなたは、この使用することができます:

import java.net.URLEncoder; 

class{ 
    String TEXT; 

    TEXT= URLEncoder.encode(TEXT, "UTF-8"); 

} 
関連する問題