Java の FTPClient によってアップロードされた中国語のディレクトリ名とファイル名が文字化けする問題の解決策

巴扎黑
リリース: 2017-07-24 15:40:03
オリジナル
4164 人が閲覧しました

問題の説明:

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 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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート