URL myUrl = new URL(url);
HttpURLConnection urlConn = (HttpURLConnection)myUrl.openConnection();
InputStream in = urlConn.getInputStream();
int n = 0;
while ((n = in.read(b)) != -1) {
html += new String(b, 0, n);
}
html=new String(html.getBytes(),"utf-8");
html=new String(html.getBytes(),"gb2312");转换后会出现个别字的乱码!该如何解决!如果网站的编码是gb2312 转过来则是正常的,UTF-8转过来就会个别字乱码

解决方案 »

  1.   

    public static String getContent(String urlStr) {
            return getContent(urlStr, "GBK");
        }    public static String getContent(String urlStr, String encode) {
            BufferedReader reader = null;
            InputStream is = null;
            try {
                URL url = new URL(urlStr);
                URLConnection conn = url.openConnection();
                conn.setConnectTimeout(5000);
                conn.connect();
                is = conn.getInputStream();
                reader = new BufferedReader(new InputStreamReader(is, encode));
                StringBuffer buffer = new StringBuffer();
                String line = null;
                while ((line = reader.readLine()) != null) {
                    buffer.append(line);
                }
                return buffer.toString();
            } catch (IOException e) {
                return null;
            } finally {
                try {
                    if (reader != null)
                        reader.close();
                } catch (IOException e) {
                }
                try {
                    if (is != null)
                        is.close();
                } catch (IOException e) {
                }
            }
        }
    用这种方法试下