`
piperzero
  • 浏览: 3465542 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

关于使用java从http接口取数据保存到本地文件的中文乱码处理

 
阅读更多

关于使用java从http接口取数据保存到本地文件的中文乱码处理


要做到如下几点:

1. 取接口数据,要注意加入编码设置与接口文件本身的编码设置一致,才能取得正确的数据


注意如下的: ins =new InputStreamReader(connection.getInputStream(),"GBK");

必须加入第二个编码格式参数:参数的值与接口返回的数据的编码格式一致


/**
* 从某个接口取返回数据内容
* @param url
* @return
*/
public static String fileGetContents(String strUrl) throws IOException {
URL url1 = null;
BufferedReader reader = null;
HttpURLConnection connection = null;
InputStreamReader ins = null ;
try {
url1 = new URL(strUrl);
connection = (HttpURLConnection) url1.openConnection();
connection.setConnectTimeout(2*1000);
connection.setReadTimeout(2*1000);

connection.connect();
ins =new InputStreamReader(connection.getInputStream(),"GBK");
reader = new BufferedReader(ins);
StringBuffer sb = new StringBuffer();
String line;

while ((line = reader.readLine()) != null) {
sb.append(line+ "\n");
}
return sb.toString();
} catch (IOException e) {
System.out.println("Error getURL:" + e);
System.out.println("Error getURL:" + strUrl);
}finally
{
if(ins != null)
{
try {
ins.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(reader != null)
{
try {
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(connection != null)
{
connection.disconnect();
}
}
return null;

}


2. 写文件处理:


要注意写入文件本身实际需要的编码格式:


注意:OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(f),"GB2312"); 这句


public static void writeFile(String fileName, String fileContent)
{
try
{
File f = new File(fileName);
if (!f.exists())
{
f.createNewFile();
}
OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(f),"GB2312");
BufferedWriter writer=new BufferedWriter(write);
writer.write(fileContent);
writer.close();
} catch (Exception e)
{
e.printStackTrace();
}
}


3. 接口方编码设置:


如接口为http://www.test.com/getdata.jsp

假设如下:

<%@ page language="java" contentType="text/html; charset=GB2312"
pageEncoding="GB2312">

总的来说就是各个地方都采用一致的编码就可以避免讨厌头疼的中文编码乱码问题的发生。

分享到:
评论

相关推荐

    大智慧股票本地数据读取接口(含源码)

    2)如果数据文件已经被分析家等软件占用导致无法打开时,将自动复制一份该文件,并从该备份文件中读取数据. 3)程序将自动补充数据,即如果目标表不存在,则建立并添加数据,如果目标表已存在,则判断表中每只证券的最新 ...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    书名:《Java开发实战1200例(第I卷)》(清华大学出版社.李钟尉,陈丹丹) PDF格式扫描版,全书分为24章,共817页。2011年1月出版。 全书压缩打包成4部分,这是第3部分 注:本系列图书的第I、II卷再版时均相应改名为...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...

    ssh(structs,spring,hibernate)框架中的上传下载

    BlobByteArrayType使用从sessionFactory获取的Lob操作句柄lobHandler将byte[]的数据保存到Blob数据库字段中。这样,我们就再没有必要通过硬编码的方式,先insert然后再update来完成Blob类型数据的持久化,这个原来难...

    asp.net知识库

    使用.ashx文件处理IHttpHandler实现发送文本及二进制数据的方法 制作一个简单的多页Tab功能 一完美的关于请求的目录不存在而需要url重写的解决方案! 在C#中实现MSN消息框的功能 XmlHttp实现无刷新三联动ListBox 鼠标...

Global site tag (gtag.js) - Google Analytics