FTP檔案亂碼和傳輸模式解釋
阿新 • • 發佈:2019-02-17
-
問題現象
- 使用apache的FTP框架下載或者上傳中文檔案出現亂碼
-
原因分析
- FTP協議裡面,規定檔名編碼為iso-8859-1,所以目錄名或檔名需要轉碼。所以如果是中文需要使用者手動設定。
-
處理步驟
- 方法一:將中文的目錄或檔名轉為iso-8859-1編碼的字元。參考程式碼:
String name="目錄名或檔名";
name=newString(name.getBytes("GBK"),"iso-8859-1");// 轉換後的目錄名或檔名
- 方法二:在new FTPClient後,使用程式碼ftpClient.setControlEncoding("utf-8");
該程式碼的作用是將檔案編碼由
- 效果
-
附錄
- FTP的傳輸有兩種方式:ASCII傳輸模式和二進位制資料傳輸模式
- 使用的時候,建議使用ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
- 來定義傳輸模式,不容易出現內容被修改的情況。因為如果使用ASCII來傳輸的時候,出現過“回車”變成“換行”的情況,使內容發生改變。具體原因可以看看這兩種模式的詳解。
- 使用的時候,建議使用ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
- FTP的傳輸有兩種方式:ASCII傳輸模式和二進位制資料傳輸模式