Hi I'd tried on my mobile. Seems the UTF-8 had encode twice. Here's my solution. public Vector checkTorrents() throws ServerNotFoundException, UnauthorizedException { try { if (_cacheId.equals("")) { String response = getServerResponse("?list=1"); response = new String(response.getBytes("UTF-8"),"ISO8859_1"); parseFullResponse(response); } else { String response = getServerResponse("?list=1&cid="+_cacheId); response = new String(response.getBytes("UTF-8"),"ISO8859_1"); parseDiffResponse(response); } } catch(UnsupportedEncodingException ue) { ue.printStackTrace(); } return getTorrents(); } :-D