CentOs 7でヘブライ語(Unicode)ファイル名をサポート

CentOs 7でヘブライ語(Unicode)ファイル名をサポート

CentOS 7がインストールされたVPSがあります。ヘブライ語名のファイルをサーバーにアップロードしようとしています。 FTP(Pure-ftpd)を介してアップロードしようとすると、次の結果が表示されますFailed to convert command to 8 bit charset。 php-upload-pageを介してアップロードしようとしましたが、名前なしでファイルを送信します(たとえば、ファイル名があればשלום.jpgサーバーに保存されます。ロケールを.jpgに変更してみましたが、それでもそうではありません)。en_US.utf8he_IL.utf8

何をすべきかを知っている人はいますか?

編集する: 問題はFTPサーバー(Pure-ftpd)にあります。 ProFtpをアンインストールしてProFtpをインストールしましたが、正常に動作します。

ベストアンサー1

en_US.utf8/he_IL.utf8をどのように使用していますか?

ここでは、次の2つに注意を払う必要があります。

  1. FTPサーバー

FTP サーバーはユーザーが操作します。実行時に環境変数に LANG=en_US.utf8 または LANG=he_IL.utf8 が定義されていることを確認する必要があります。

実行して確認できます。

grep -aPo 'LANG=[^=]+' /proc/{pid}/environ

ここで{pid}はFTPサーバーのプロセスIDです(おそらくこのコマンドを実行するrootユーザーです)。

Linuxでは、通常、I18nをサポートするために実行可能ファイルのコンテキストでこの変数を定義する必要があります。

正しく定義されていない場合は、いくつかのオプションがあります。

ㅏ。このFTPサーバーに割り当てられているユーザーの.bashrcを変更します。

export LANG=en_US.utf8

そしてシステムを再起動してください。

b。より直接的には、この環境変数定義をFTPサーバーの起動スクリプトに直接追加します。

export LANG=en_US.utf8

  1. FTPクライアント

さらに、FTPクライアントは、名前が正しくエンコードされるようにファイルをアップロードするときにこのLANG環境変数を正しく設定する必要があります。

以下を実行します。

export LANG=en_US.utf8

たとえば、コマンドラインからFTPクライアントを呼び出す前です。

クライアントとサーバーの両方が上記のように正しく構成されていて、使用しているアプリケーション(あなたの場合はFTPサーバーとクライアント)がI18nをサポートしていれば、正常に動作する可能性が高くなります。

おすすめ記事