我正在尝试使用 RSYNC 将文件从 Solaris 9(SunOS 5.9)系统同步到 Windows Server 2008 R2(通过 cygwin)
有许多文件包含“ä”、“ö”、“ü”或“ß”等字符。只有当 Windows 用户访问 Solaris-Samba-Share 时,这些字符才会正确显示。Rsync 将这些字符显示为:#201 表示“ü”复制到 Windows 后,这些字符会变成“点”,如下所示:
- <-- 点
在 Solaris 上它们看起来像这样:▒
是否可以使用 rsync 的“--iconv”功能将文件名转换为正确的格式?如何确定 solaris 机器上的文件名编码?
答案1
我遇到了同样的问题,发现你可以使用该工具康维找到文件的编码,然后使用 rsync 的--iconv
选项。
- 从以下位置下载 convmvhttps://www.j3e.de/linux/convmv/并提取
- 使用以下命令检查可用的编码
convmv --list
- 尝试(或编写脚本)哪种编码与 convmv 兼容,例如(当转换成功时
convmv -f iso-8859-1 -t UTF-8 /path/to/file
返回代码为 0,否则不为 0)$?
- 找到正确的编码后,使用带参数的 rsync
--iconv
,例如rsync --iconv=ISO-8859-1,UTF-8 /source /destination