小编Ach*_*rts的帖子

如何使用伪字符集 UTF8-MAC 在 Linux (Ubuntu 14.04 LTS) 上重新编译 iconv?

我在谷歌上搜索了几个小时来为我的问题找到解决方案,但我无法让它工作:

我必须将 ext4 格式驱动器上的文件结构 rsync 到 hfs+ 格式驱动器。文件夹和文件名可以包含德语元音变音 (äöüß),并且 OS X 和 Linux 对 UTF8 的处理不同。OS X 文件系统使用 Unicode Normalization Form D (NFD),而 Linux 使用 Form C (NFC)。

这种行为会导致删除和重新同步名称中带有变音符号的文件,这会产生大量不必要的开销,尤其是当您使用该--backup选项进行rsync 时。

防止这种行为的解决方案是使用,--iconv=UTF8,UTF8-MAC但这仅适用于 Mac 上较新的iconvlib。Ubuntu 14.04 上的实际 iconvlib 不支持伪字符集 UTF8-MAC:


root@ubuntu:~/wartung# iconv -l
...
UTF-7, UTF-8, UTF-16, UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, UTF-32LE, UTF7, UTF8, UTF16, UTF16BE, UTF16LE, UTF32, UTF32BE, UTF32LE, ...
Run Code Online (Sandbox Code Playgroud)

使用自制软件的最新 rsync 的 OS X 做到这一点:


bash-3.2$ iconv -l
ANSI_X3.4-1968 ANSI_X3.4-1986 ASCII CP367 …
Run Code Online (Sandbox Code Playgroud)

ubuntu rsync mac-osx utf-8

7
推荐指数
0
解决办法
881
查看次数

标签 统计

mac-osx ×1

rsync ×1

ubuntu ×1

utf-8 ×1