從前台jsp表單拿到數據,寫入本地臨時文件中。本地運行沒問題,部署到服務器端,出現亂碼。服務器環境win2003
原始代碼:
1 FileWriter writer = new FileWriter(path); 2 3 writer.write(fileContent)
解決后的:
1 Writer writer = new BufferedWriter( 2 new OutputStreamWriter( 3 new FileOutputStream(path), "UTF-8")); 4 5 writer.write(fileContent);
無亂碼
但由於生成的內容要寫入文件,如(.java .c .cpp), 但無法編譯成功,識別不出格式,顯示為mac文件。那就換種方法吧:
1 FileWriter fw = new FileWriter(path); 2 BufferedWriter bw = new BufferedWriter(fw); 3 bw.write(fileContent);
這樣貌似不存在中文亂碼問題.. 但貌似還是不行..
最后發現根本原因不在於流的轉換,而是在前台獲取文本內容時,以前為了防止文本文件在記事本中不換行的現象,加了\n到 \r\n的轉換
最后導致了生成用例文件無法編譯~ 一直找錯了方向
