2016-07-27 4 views
5

ホストがFTPを無効にしているため、SFTPを使用する必要がありますが、SFTPに移行してからPhpStormに奇妙な問題が発生しました。私のファイル名には、ドイツ語のウムラウト(LösungsblattまたはÜbungsblatt)が付いていることがあります。通常、正しくファイルがアップロードされ、ホストウィンドウにファイルが正しく表示されます。私は、リモート・ホスト上のSFTP古いファイルを使用するように強制していますので、新たにアップロードされたファイルがPhpStorm内で正しく表示されている間、このPhpStorm/WinSCPとSFTPでファイル名のエンコードが間違っています

enter image description here

として表示されます。しかし、WinSCPの中に古いファイルがLösungsblatt-01.pdfなどとして正しく表示されているが、それらは基本的には他の方法でラウンドです

enter image description here

として表示するのでPhpStormを経由して、正しくアップロードされるように見えたファイルが壊れています。私はUTF-8とUTF-16のファイル名がアップロードの過程で混ざり合っていると感じているので、(1)リモートツリーのファイル名を適切に表示し、(2)適切なエンコーディング(コンテンツのエンコーディングではなく、ファイル名自体のエンコーディング)でファイルを正しくアップロードしてください。

答えて

0

SFTPプロトコルファイル名はUTF-8でなければなりません。実際にはそれはバージョン4以降でしかありませんが、古いバージョンでは特定のエンコーディングが要求されていませんでした。したがって、実装はさまざまです。いくつかはUTF-8を使用していますが、多くの場合、おそらくほとんどの場合、デフォルトのWindows ANSIエンコーディングのようなシステムのデフォルトエンコーディングを使用します。

最近のWinSCPバージョンは、OpenSSHのようにSFTPバージョン3(またはそれ以前)を実装しているサーバであっても、常にUTF-8を使用します。実際、OpenSSHはエンコーディングに関するビューを持っていません。基本的なシステムで使用されるすべてのエンコーディングを使用します。最近のほとんどの* nixシステムはUTF-8にデフォルト設定されているので、うまく動作します。

私の推測では、PhpStormは実際にはWindowsのデフォルトのAnsiエンコードを使用しています(「西洋言語」ではWindows-1252となります)。 "UTF-8 encoding for filenames"を「オフ」に設定すると、WinSCPにもその設定を使用させることができます。実際にPhpStormにUTF-8を使用させる必要があります。

+0

実際に私はこのようなオプションを探していましたが、 'Control encoding'以外のものを見つけることができず、' UTF-8'に設定すると問題が解決しませんでした。私が見つけられない設定があるか、IDEがinterenallyなのですが、SFTPプロトコルを使っていますか? –

+0

私はそれに答えるのに十分なPhpStormを知らない。 –

関連する問題