无法复制到外部硬盘,因为错误:“无效或不完整的多字节或宽字符”

无法复制到外部硬盘,因为错误:“无效或不完整的多字节或宽字符”

我有一个外部 USB HD,我想将我的音乐备份到其中。

当我尝试使用 rsync 或 cp 时,大多数文件都会复制,但有些文件由于此错误而没有复制:

invalid or incomplete multibyte or wide character

我该如何解决?

作为参考,这里是源驱动器的安装方式:

 /dev/sdb3 on /media/Music type vfat
 (rw,nosuid,nodev,noexec,noatime,uid=1000,gid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro,user)
 [Music]

USB 外部驱动器(目标)的安装方式如下:

 /dev/sdf1 on /media/username/Seagate Backup Plus Drive type fuseblk
 (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096,uhelper=udisks2)
 [Seagate Backup Plus Drive]

任何帮助,将不胜感激!

答案1

对于任何好奇的人来说,我确实解决了这个问题。首先,我确定旧 VFAT 驱动器上的字符集是ISO-8859-1(对于 Windows 来说非常常见)。然后我执行了一个rsync命令,其中包含将旧字符集转换为的选项,UTF-8这成功了。

例子:

rsync -vaW --size-only --iconv=ISO-8859-1,utf-8 /media/Music/* '/media/username/Seagate Backup Plus Drive/Backup - Music/Music' > ~/rsynclog.txt

希望这对别人有帮助!

答案2

如果问题特定于您的系统(例如,名称中带有特殊字符的文件的副本在 Windows 或其他 GNU/Linux 发行版中有效),您可能需要在 mount 命令末尾添加选项 iocharset=utf8。这为我解决了问题。

相关内容