問題の説明:
org.apache.commons.net.ftp.FTPClient を使用して中国語のディレクトリを作成し、中国語のファイル名をアップロードすると、ディレクトリ名とファイル名の中国語が「??」として表示されます。
理由:
FTP プロトコルでは、ファイル名エンコーディングは iso-8859-1 であるため、ディレクトリ名またはファイル名をトランスコードする必要があります。
解決策:
1. 中国語のディレクトリ名またはファイル名を iso-8859-1 でエンコードされた文字に変換します。参照コード:
name=new String(name.getBytes("GBK"),"iso-8859 -1" );//変換されたディレクトリ名またはファイル名。
2. Linux 環境変数を設定します
例:
public boolean upLoadFile(File file, String path, String fileName) throws IOException {
boolean result = false;
FTPClient ftpClient = new FTPClient();
try {
ftpClient.connect(confService.getConfValue (PortalConfContants.FTP_CLIENT_HOST)));
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE) (path != null && !"".equals(path.trim())) {string [] paths.split( "/"); null ||。
、 "ISO-8859-1")
、new fileInputStream(file));
以上がJava の FTPClient によってアップロードされた中国語のディレクトリ名とファイル名が文字化けする問題の解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。