Maison >Java >javaDidacticiel >Solution au problème des noms de répertoires et de fichiers chinois tronqués téléchargés par FTPClient en Java

Solution au problème des noms de répertoires et de fichiers chinois tronqués téléchargés par FTPClient en Java

巴扎黑
巴扎黑original
2017-07-24 15:40:034193parcourir

Description du problème :

Lors de l'utilisation de org.apache.commons.net.ftp.FTPClient pour créer un répertoire chinois et télécharger un nom de fichier chinois, le chinois dans le nom du répertoire et le nom du fichier s'affiche sous la forme "??".

Raison :

Dans le protocole FTP, le codage du nom de fichier est iso-8859-1, le nom du répertoire ou le nom du fichier doit donc être transcodé.

Solution :

1. Convertissez le répertoire ou le nom de fichier chinois en caractères codés iso-8859-1. Code de référence :

Copier le code Le code est le suivant :

String name="Nom du répertoire ou nom du fichier";

name =new String(name.getBytes("GBK"),"iso-8859-1");//Le nom du répertoire ou du fichier converti.


2. Définissez la variable d'environnement Linux

Copiez le code Le code est le suivant :

export LC_ALL= "zh_CN.GBK"
export LANG="zh_CN.GBK"


Exemple :

Copier le code Le le code est le suivant :


public boolean upLoadFile(File file, String path, String fileName) throws IOException {
boolean result = false;
FTPClient ftpClient = new FTPClient();
essayez {
ftpClient .connect(confService.getConfValue (PortalConfContants.FTP_CLIENT_HOST)); (PortalConfContants.FTP_CLIENT_PASSWORD));
ftpClient.setFileType(FTPClient .BINARY_FILE_TYPE);

// créer un répertoire

if (path != null && !"".equals(path.trim())) {

String[] paths = path.split( "/");
for (String onepath : paths ) {
                                                           >            }

onepath=new String(onepath.getBytes("GBK"),"iso-8859-1 ");
if (!ftpClient.changeWorkingDirectory(onepath) ) {
ftpClient.makeDirectory(onepath );

ftpClient.changeWorkingDirectory(onepath);

antecedents.storeFile(
new String( fileName.getBytes("GBK") . logout();
}
return result;
}

Republié depuis :

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn