FTP文件亂碼和傳輸模式解釋


問題現象
使用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");
該代碼的作用是將文件編碼由ISO-889-1轉為utf-8,也可以轉為其他的,例如GBK

效果
附錄
FTP的傳輸有兩種方式:ASCII傳輸模式和二進制數據傳輸模式
使用的時候,建議使用ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
來定義傳輸模式,不容易出現內容被修改的情況。因為如果使用ASCII來傳輸的時候,出現過“回車”變成“換行”的情況,使內容發生改變。具體原因可以看看這兩種模式的詳解。
http://blog.sina.com.cn/s/blog_49c23d17010007zw.html

http://www.tuicool.com/articles/VzuQvyB
————————————————
版權聲明:本文為CSDN博主「-Hermes-」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_33301113/article/details/55657151


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM