首頁 >Java >java教程 >Java中FTPClient上傳中文目錄及檔案名稱亂碼的解決方法

Java中FTPClient上傳中文目錄及檔案名稱亂碼的解決方法

巴扎黑
巴扎黑原創
2017-07-24 15:40:034196瀏覽

問題說明:

  使用org.apache.commons.net.ftp.FTPClient建立中文目錄、上傳中文檔案名稱時,目錄名稱及檔案名稱中的中文顯示為「??」。

原因:

  FTP協定裡面,規定檔案名稱編碼為iso-8859-1,所以目錄名稱或檔案名稱要轉碼。

解決方案:

1.將中文的目錄或檔案名稱轉換為iso-8859-1編碼的字元。參考代碼:

複製程式碼 程式碼如下:

   String name="目錄名稱或檔案名稱";

   name=new String(name.getBytes("GBK"),"iso-8859-1");// 轉換後的目錄名稱或檔案名稱。


2.設定linux環境變數

複製程式碼 程式碼如下:
##export LC_ALL= "zh_CN.GBK"
export LANG="zh_CN.GBK"

#實例:

##複製程式碼
程式碼如下:
    public boolean upLoadFile(File file, String path, String fileName) throws IOException {

        boolean     try {
            ftpClient .connect(confService.getConfValue(PortalConfContants.FTP_CLIENT_HOST));
            ftpClient.login(confService.getConf         .getConfValue(PortalConfContants.FTP_CLIENT_PASSWORD));
            ftpClient.setFileType(FTPClient .BINARY_FILE_TYPE);

            // make directory
                  String[] pathes = path.split( "/");
                for (String onepath : pathes) {
           }                       並的;##           

##                                     if (!ftpClient.changeWorkingDirectory(onepath)) {

      });
                        ftpClient.changeWorkingDirectory(onepath);#             }
            }

          ,"iso-8859-1")
, new FileInputStream(file));
        } catch (Exception e) {

                 ftpClient. logout();

        }
        return result;
    }

 

轉自:

    }

 

以上是Java中FTPClient上傳中文目錄及檔案名稱亂碼的解決方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn