写入中文字符乱码

Posted on 2018-05-02 18:06  alavender  阅读(145)  评论(0编辑  收藏  举报

最近在项目开发中用到sftp来进行文件传输,最初的想法是用public OutputStream put(String dst)向该输出流中写入数据,最终将数据传输到目标服务器,结果被中文乱码困扰了好久,后面转念一想其实可以先写文件,在写文件的时候对编码进行设置,然后采用public void put(String src, String dst)直接传文件,试了一下,果真没有乱码了。

写文件:

......
String string = "字符串写入";
File destFile = new File(srcfile);
OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(destFile),"UTF-8");
BufferedWriter bwriter = new BufferedWriter(writer);
bwriter.write(string);
bwriter.close();
sftp.put(srcfile,destfile);
......

读文件:

......
InputStream in = sftp.get(destfile);
JSONParser jp = new JSONParser();
JSONObject jo = (JSONObject)jp.parse(new InputStreamReader(in,"UTF-8"));
......