`

HttpURLConnection读取html文件 乱码问题解决

阅读更多

问题是---------bufferreader不管如何转化字符集读取,内容显示均为乱码;后来,使用htmlparse解析html的开源代码,发现在读取网页时没有问题 ==== trace code 发现 乱码有可能是压缩网页造成
比如是-----gzip格式的网页;所以采用以下代码读取网页是没有问题
public static void GetFromHtml() throws IOException{
//int ret=0;
String contentEncoding;
HttpURLConnection url=null;
//String htmladdr="http://www.zhcw.com/data-js/nowdata50.js";
String htmladdr="http://www.itpub.net/753054.html";
       StringBuffer buffer=new StringBuffer("");
       try {
        URL url1 = new URL(htmladdr);
       
       
        url =   (HttpURLConnection)url1.openConnection ();
        url.setRequestProperty("User-Agent", "mozlla/5.0");
        url.setRequestProperty("Accept-Encoding", "gzip, deflate");
        url.connect();
       
       
        contentEncoding=url.getContentEncoding();
       
} catch (Exception e) {
// TODO Auto-generated catch block

e.printStackTrace();
return ;
}
if(url!=null){
InputStream stream;
if ((null != contentEncoding)
                   && (-1 != contentEncoding.indexOf ("gzip"))
            {
                   stream = new GZIPInputStream (
                     url.getInputStream ());
            }
            else if ((null != contentEncoding)
                   && (-1 != contentEncoding.indexOf ("deflate"))
            {
                   stream = new InflaterInputStream (
                      url.getInputStream ());
            }
            else
            {
                   stream = url.getInputStream ();
            }

//InputStream stream= url.getInputStream();

      BufferedReader reader =
         new BufferedReader(new InputStreamReader(stream));
     
      String temp;
          while (null != (temp = reader.readLine())) {
           //temp=new String(reader.readLine().getBytes("gbk");
           System.out.println(temp);
            // break;
          }
          reader.close();
          }
}

分享到:
评论

相关推荐

    java读取远程网页乱码解决方案

    总之,解决Java读取远程网页乱码问题的关键在于正确识别和使用网页的字符编码。通过设置请求头、使用特定的API或第三方库,以及处理响应头中的`Content-Type`信息,可以有效地避免乱码问题。同时,编写健壮的代码,...

    乱码终极解决办法java实现

    1. **源文件读写**:读取或写入文件时,需指定正确的字符集。使用`InputStreamReader`和`OutputStreamWriter`结合`FileInputStream`和`FileOutputStream`,并明确指定编码格式,例如`new InputStreamReader...

    安卓文件下载上传解压相关-javaandroidzip解压缩解决压缩中文乱码问题).rar

    本文将深入探讨如何使用Java在Android环境中处理这些任务,特别是解决中文文件名在压缩和解压缩过程中可能出现的乱码问题。 首先,让我们关注文件的下载和上传。在Android中,我们可以使用`java.net.URL`和`java...

    android解决乱码

    以下将详细介绍如何解决Android中的乱码问题,并结合提供的"中文乱码问题解决.docx"文档内容进行深入讨论。 首先,理解字符编码是解决乱码的关键。UTF-8是最常用的编码格式,它能支持大部分世界语言,包括中文。但...

    java 用HttpsURLConnection进行传递中文时错误总结

    然而,当传输包含中文字符的数据时,由于字符编码的不一致,可能会导致乱码问题。 错误通常出现在两个主要环节:请求头的设置和数据的编码/解码。以下是一些常见问题及其解决方案: 1. **请求头的Content-Type设置...

    java HttpURLConnection 使用示例

    在本文中,我们将深入探讨`HttpURLConnection`的使用,包括GET和POST请求的实现,以及如何处理可能出现的乱码问题。 一、`HttpURLConnection`概述 `HttpURLConnection`是`URLConnection`的子类,专门用于处理HTTP...

    Android读取网页源代码解决编码错误问题

    在本教程中,我们将深入探讨如何在Android应用中正确地以GET方式读取网页源代码,并解决可能出现的编码错误导致的乱码问题。 首先,我们需要使用`HttpURLConnection`或者第三方库如`Volley`、`OkHttp`来发起...

    安卓文件下载上传解压相关-andorid采用post方法把文件传输到自己写的服务器并解决了文件中文编码问.rar

    在Android开发中,文件的下载、上传和解压是常见的操作,这些功能通常涉及到网络通信、数据处理和文件系统管理等多个方面。以下是对这个主题的详细讲解: 1. **文件下载**: 文件下载通常使用HTTP或HTTPS协议,...

    java字符过滤器,过滤器

    在处理文本数据时,尤其是在网络传输或者读取不同编码格式的文件时,可能会遇到字符乱码的问题。Java过滤器就是为了解决这些问题,确保数据在处理过程中保持正确的编码格式。 在Java中,字符乱码通常是由于字符编码...

    谈谈Java利用原始HttpURLConnection发送POST数据

    在这个例子中,数据是一个包含名字的字符串,先通过`URLEncoder.encode()`方法将其编码为UTF-8格式,避免出现乱码问题。 完成数据写入后,记得关闭输出流。随后,通过`getResponseCode()`检查服务器返回的状态码,...

    Java指定编码生成静态网页技术.pdf

    `PrintWriter`的构造函数接受一个`File`对象和一个编码,确保写入文件时使用指定的字符编码,避免编码不匹配导致的乱码问题。 在示例代码中,`main`方法演示了如何调用这些功能,首先尝试生成静态HTML页面,如果...

    java应用中的汉字编码问题

    本资料将深入探讨Java中的汉字编码问题,帮助开发者理解并解决可能出现的乱码现象。 首先,我们需要理解编码的基本概念。编码是将字符转换为二进制表示的过程,而解码则是相反的过程。在Java中,最常用的字符编码...

    Java通过HttpURLConnection与servlet通信

    - 传输数据时要考虑字符编码问题,确保客户端和服务器端的编码一致,避免乱码。 - 如果需要处理大型数据,考虑使用流式传输,而不是一次性加载到内存中。 总结,Java通过HttpURLConnection与Servlet通信涉及到...

    Android读取网页源代码

    本文将详细讲解如何在Android应用中以GET方式读取网页源代码,并解决可能出现的乱码问题。 首先,我们需要理解HTTP协议中的GET方法。GET是最基本的HTTP请求方法,它向服务器请求指定资源。在Android中,我们通常...

    JAVA中文编码的问题研究

    在处理包含中文字符的文件时,Java需要知道文件的原始编码才能正确读取。Java通过`InputStreamReader`和`FileReader`等类与`Charset`类结合,指定文件的编码格式,例如GBK或UTF-8。如果不指定,Java默认使用系统默认...

    Android例子源码使用HttpClient获取网页html源代码.zip

    在较新的Android版本中,应优先考虑使用 HttpURLConnection,因为它更高效,支持异步请求,并且可以进行更多的自定义配置。 总结来说,这个例子旨在帮助开发者了解如何在Android环境中使用HttpClient和...

    java通过url下载文件并输出的方法

    Java 通过 URL 下载文件并输出的方法 Java 通过 URL 下载文件并输出的方法是指在 Java 语言中使用 URL 连接来下载文件并将其输出到客户端的方法。本文将深入探讨这种方法的实现细节,并为开发者提供一个详细的参考...

    Word文档转xml

    确保XML数据在传输过程中正确编码,防止乱码问题。 6. **服务器端处理**:服务器接收到XML后,可以根据业务逻辑进行进一步处理,例如存储、分析或展示。服务器端可以使用各种编程语言和框架,如Python的ElementTree...

    Java字符集[定义].pdf

    3.3. 文件编码与读写 在Java中,读写文件时需要指定编码。`FileReader`和`FileWriter`默认使用平台的默认字符集,这可能导致跨平台问题。`InputStreamReader`和`OutputStreamWriter`允许指定字符集,如`new ...

    android断点下载,杀进程或关Activity继续下载,保证下载速度

    最后,处理编码问题,确保文件名和内容不出现乱码。文件名的编码问题可以通过URLDecoder和URLEncoder进行转换,而文件内容的编码则取决于服务器返回的编码格式,通常为UTF-8或GBK。在读写文件时,需指定正确的字符集...

Global site tag (gtag.js) - Google Analytics