从 Solaris 到 Windows 的 rsync(文件名上的字符编码)

从 Solaris 到 Windows 的 rsync(文件名上的字符编码)

我正在尝试使用 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选项。

  1. 从以下位置下载 convmvhttps://www.j3e.de/linux/convmv/并提取
  2. 使用以下命令检查可用的编码convmv --list
  3. 尝试(或编写脚本)哪种编码与 convmv 兼容,例如(当转换成功时convmv -f iso-8859-1 -t UTF-8 /path/to/file返回代码为 0,否则不为 0)$?
  4. 找到正确的编码后,使用带参数的 rsync --iconv,例如rsync --iconv=ISO-8859-1,UTF-8 /source /destination

相关内容