rsync on Windows + non-ASCII file names
Is there a version of rsync
that runs on current Windows versions and can handle non-ASCII file names? Every version I checked (including cwRsync and rsync.net client) fail miserably on files with Unicode characters in names.
If such version of rsync
does not exist, what other tool might I use for bandwidth-efficient synchronization of files between Windows and Linux?
I'm synchronizing large, rarely changing file trees over a relatively slow link. The difference between the rsync-style synchronization and full-copy approaches is significant.
Solution 1:
rsync offers an --iconv
option for filename character encoding conversion. It accepts arguments for fine-grained control over source and target encoding.
From the rsync man page:
[...] you can fully specify what conversion to do by giving a
local and a remote charset separated by a comma in the
order --iconv=LOCAL,REMOTE, e.g. --iconv=utf8,iso88591.
Solution 2:
If you tried to use DeltaCopy, then get UTF-8 capable cygwin (=cygwin1.dll) from http://www.oki-osk.jp/esc/utf8-cygwin/ The solution has been a must for the japans and they have had it at least since 2006.
Unpack the dll binary by using 7zip twice. Then remove original cygwin1.dll from your DeltaCopy program folder and put the new one instead. Beware: Old and new have exactly equal appearances. Keep it clear which one is the new. After changing the dll in client and server, the transmission works ok between two Windows machines. Sadly the client console displays gibberish when it tries to show some filename having multibyte UTF-8 chars, but the transmissin works.
I've not tried what happens if the backup server has Linux or some else UNIX-resemblant (for example Nas4Free) and only the client in Windows machine is fixed.
Obviously rsync handles UTF-8 but cygwin doesn't. In DeltaCopy's cygwin the UTF-8 filenames are at first misspelled and when a copy of a file is tried to create, the file seems to be vanished.