1. 程式人生 > >寫入中文字符亂碼

寫入中文字符亂碼

puts style buffer 中文 utf-8 writer 服務 color 沒有

最近在項目開發中用到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"));
......

寫入中文字符亂碼