`
美味人间
  • 浏览: 91427 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

关于java字符集编码问题 URLConnection

    博客分类:
  • java
 
阅读更多

今天遇到一字符集问题,用URLConnection来开启http访问获取数据的问题,对方是utf-8编码,到了自己这边,成了乱码。

<%@ page contentType="text/html; charset=GBK"%>

这是jsp头。

public String getDocumentAt(String urlString) {
		StringBuffer document = new StringBuffer();
		try {
			URL url = new URL(urlString);
			URLConnection conn = url.openConnection();
			BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
			String line = null;
			while ((line = reader.readLine()) != null)
				document.append(line + "\n");
			reader.close();
		} catch (MalformedURLException e) {
			System.out.println("Unable to connect to URL: " + urlString);
		} catch (IOException e) {
			System.out.println("IOException when connecting to URL: " + urlString);
		}
		return document.toString();
	}
 

 这是原来的方法。看了好多文章,终于明白怎么转换了。原来很简单的,就是当字节输入流conn.getInputStream()转为字符InputStreamReader时候,加上原来的字符集编码就可以了。因为在java内存里面保存的都是统一编码,InputStreamReader会自动转换

为统一编码的。所以这样改

 

BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));

这样就解决了问题。真是踏破铁鞋无觅处,得来全不费工夫。

关于字符集的,大家可以看看这篇文章,说得很清楚。如果遇到其他字符集问题,估计都不难解决的。

http://jiangzhengjun.iteye.com/blog/512072

 

分享到:
评论

相关推荐

    java 字符集的解码方法

    在Java编程语言中,字符集(Charset)是用于表示文本数据的一系列规则,它定义了字符与二进制数据之间的映射关系。...以上就是关于Java字符集解码方法的详细说明,希望对您理解Java字符集处理有所帮助。

    java URLConnection全面解析(通俗易懂,包括cookie操作和上传文件)

    ### Java URLConnection全面解析 #### 一、简介与准备工作 `URLConnection` 是Java标准库中的一个接口,位于`java.net`包下,用于抽象出网络连接。通过`URLConnection`,开发者能够实现对HTTP请求的基本控制,例如...

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

    2. **数据编码**:在发送包含中文字符的数据之前,需要将其转换为字节流,并使用指定的字符集进行编码。例如: ```java String data = "中文数据"; byte[] bytes = data.getBytes("UTF-8"); ``` 3. **接收响应...

    java URLConnection全面总结(包括cookie的详细操作).docx

    字符集(charset)则用于编码和解码请求和响应中的文本信息。例如,你可以设置UTF-8作为字符集,以确保跨平台兼容性。 ```java String url = "http://example.com"; String charset = "UTF-8"; ``` 二、发送带参数...

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

    网页通常使用UTF-8、GBK等字符集编码,Java在读取时必须识别并匹配这种编码,才能正确解析字符。当Java程序以错误的编码读取网页时,会出现乱码现象。 一、使用`java.net.URL`和`BufferedReader` 1. 创建`URL`对象...

    java常用的工具类整理28个

    25. **java.nio.charset.Charset**:处理字符集的类,用于编码和解码。 26. **java.nio.file.Files**:提供大量静态方法用于文件系统操作,如创建、删除、复制文件或目录。 27. **java.nio.file....

    Java开发详解.zip

    032004_【第20章:Java新IO】_字符集笔记.pdf 032005_【第20章:Java新IO】_Selector笔记.pdf 042101_【课程讲解】_附录:Eclipse开发工具笔记.pdf 050101_〖开发实例〗_Java开发实例讲解(人员管理)笔记.pdf

    java HttpURLConnection 使用示例

    3. 设置请求头中的Accept-Charset,表明客户端能接受的字符集:`connection.setRequestProperty("Accept-Charset", "UTF-8")` 五、其他注意事项 1. 连接超时:可以使用`connection.setConnectTimeout()`和`...

    java高级编程第五章net包

    例如,当我们从一个非ASCII编码的网页读取内容时,需要使用`InputStreamReader`和`BufferedReader`结合适当的字符集来正确解析文本。 `net`包还包含了`URLConnection`类,它是所有网络连接的基础。`URLConnection`...

    解决各种乱码

    确保数据库表的字符集与Java程序中设置的一致,例如在MySQL中,可以创建表时指定`CHARACTER SET utf8mb4`,在Java中,通过JDBC连接URL设置`useUnicode=true&characterEncoding=utf8`。 此外,对于HTML文件(如...

    Java相关

    掌握appletviewer(用于运行Applets)、HtmlConverter(HTML转换工具)、jar(打包工具)、java(运行Java程序)、javac(编译Java源代码)、javadoc(生成文档)、javap(反汇编器)、javaw(无控制台窗口运行Java...

    SUN Java 考试大纲

    - **Java编码规范**:强调良好的编程习惯和风格对于提高代码可读性的重要性。 #### 五、表达式和流程控制 - **Java表达式**:介绍算术表达式、关系表达式、逻辑表达式等。 - **Java流程控制语句**:包括条件语句...

    java-jdk-1.8版本API离线文档(中文版)-海纳百川提供

    总之,Java JDK 1.8的API离线文档是开发者日常编码、学习和解决问题的重要参考资料,它详细解读了每个类、接口和方法,帮助我们更好地理解和利用Java的强大功能。无论是初学者还是经验丰富的开发者,都应该充分利用...

    Java程序员面试宝典与习题

    在Java程序员的面试过程中,掌握核心的编程概念、设计模式、多线程、集合框架、异常处理、IO流、网络编程...阅读和学习提供的《Java程序员面试宝典》和《Java面试问题集》PDF文档,将有助于全面准备Java程序员的面试。

    Java Platform Migration Guide.pdf

    Java 5.0提供了对增补Unicode字符集的全面支持,这对于处理多种语言的应用程序非常重要。 ##### 网络(Networking) **1.4.1 URLConnection Processing** 在处理URL连接方面,Java 5.0增加了新的功能并修复了一些...

    疯狂JAVA讲义

    第1章 Java概述 1 1.1 Java语言的发展简史 2 1.2 Java的竞争对手及各自优势 4 1.2.1 C#简介和优势 4 1.2.2 Ruby简介和优势 4 1.2.3 Python的简介和优势 5 1.3 Java程序运行机制 5 1.3.1 高级语言的运行机制 6...

    java 网络爬虫 爬去别人的网页

    使用`java.net.URL`类来表示网页的统一资源定位符,`URLConnection`类则用于建立到指定URL的连接。通过`openStream()`方法,可以获取到网页的字节流,进一步读取网页内容。 2. **多线程**: 在Java中,多线程可以...

    java设计与实践

    了解流的概念,以及缓冲、字符编码和文件操作,能有效地处理数据的读写。 8. **数据库交互**:Java的JDBC(Java Database Connectivity)API使得与各种数据库的交互变得简单。学习如何连接数据库、执行SQL语句、...

    Java核心技术II(第8版)

    1.2.4 字符集 1.3 读入和写出二进制数据 1.3.1 随机访问文件 1.4 ZIP文档 1.5 对象流与序列化 1.5.1 理解对象序列化的文件格式 1.5.2 修改缺省的序列化机制 1.5.3 序列化单例和类型安全的枚举 1.5.4 版本管理 1.5.5 ...

Global site tag (gtag.js) - Google Analytics