This is an old revision of the document!

How do I make WinSCP show localized and/or UTF-8 encoded (Unicode) filenames correctly?

SFTP protocol specification requires that client and server uses UTF-8 encoding (Unicode) for file names.

WinSCP can operate in two modes, either it expects that the local machine and the server uses the same encoding (no conversion is done) or treats remote filenames as UTF-8 (Unicode) encoded. By default, the first mode is used for SFTP-3 and lower1, the latter mode is used for newer versions. You can force non-default behaviour using session option Server does not use UTF-8. This is useful especially for servers that use UTF-8 naively, thus even for older versions of SFTP.

Advertisement

Please be aware that if your server does not support UTF-8 encoding, but uses its local legacy encoding instead, it is its fault. The problem is not on WinSCP-side. You should push your server provider to add support for UTF-8, and not ask for support of legacy encoding in WinSCP.

Also note that WinSCP is not an Unicode application. Hence it can display only characters that are present in default language code page of your workstation. For example, even if your server supports UTF-8 (Unicode), its filenames contains Chinese characters, but your workstation default language is German, WinSCP will not be able to display the characters correctly. To find out what is your default language, go to Start > Settings > Control Panel > Regional and Language Options > Advanced > Language for non-Unicode programs (on Windows XP). Unfortunately turning WinSCP to Unicode application is an immense task, that will hardly be done.

For SCP and FTP protocols filename encoding conversion is not supported at all.

  1. SFTP specification before version 4 has not required UTF-8 explicitly.Back

Last modified: by martin