1

私が開発している Android アプリでハッシュテーブルを実行しています。アクティビティを実行すると、「ht」の内容が ASCII 文字に変換されます。これが起こらないようにする方法を知っている人はいますか?

基本的に、エンコードされたテキストをデコードし、結果を文字列で使用する必要があります。機能するために、文字列で使用される URL にエンコードされたテキストを含めることはできません。

ハッシュ表

 @SuppressWarnings("unchecked")
private void executeAsyncTask(){
 Hashtable<String,String> ht=new Hashtable<String,String>();
 GetDeptAyncTask async=new GetDeptAyncTask();
  ht.put("?TYPE=leagueSearch&JSON=1","&SEARCH=test");
  try {
    URLDecoder.decode(""+ht, "UTF-8");
} catch (UnsupportedEncodingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
   @SuppressWarnings("rawtypes")
   Hashtable[] ht_array={ht};
    async.execute(ht_array);
}

文字列で使用しようとしています

protected String doInBackground(Hashtable<String,String>... params) {
  @SuppressWarnings("rawtypes")
  Hashtable ht=params[0];
  @SuppressWarnings("unchecked")
  String json=HelperHttp.getJSONResponseFromURL(BaseUrl+"2013/export", ht);

「json」文字列での「ht」の読み方

?%3FTYPE%3DleagueSearch%26JSON%3D1=%26SEARCH%test

URL の読み取り方法

?TYPE=leagueSearch&JSON=1&SEARCH=test

「ht」の LogCat

?:??: W/?(?): Hashtable {?TYPE=leagueSearch&JSON=1=&SEARCH=test}

「json」文字列の LogCat

?:??: W/?(?): URL==>HIDDENURL/export?%3FTYPE%3DleagueSearch%26JSON%3D1=%26SEARCH%test

?:??: W/?(?): Json Response==><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">....

?:??: W/?(?):   at org.json.JSONObject.<init>(JSONObject.java:127)

?:??: W/?(?):   at myapp.app.MainActivity$GetDeptAyncTask.parseJsonString(MainActivity.java:80)
4

1 に答える 1

1

java.net.URLDecoderエンコードされたテキストをデコードするために使用できます

URLDecoder.decode("%3FTYPE%3DleagueSearch%26JSON%3D1=%26SEARCH%3Dtest", "UTF-8")

生産します

?TYPE=leagueSearch&JSON=1=&SEARCH=test
于 2013-05-07T14:45:15.280 に答える