「求助」从 Debian 复制到 Windows 文件夹和文件名中的中文变一条线

我从 Debian 复制一批文件夹到 Windows 之后,部分文件夹和文件的中文或日文名称变成了一条线。
貌似是我从 ext4 格式的硬盘复制到 ntfs 或fat 格式的硬盘中时,文件名就已经发生了这种变化。
希望寻求解决方案

屏幕截图 2024-11-11 154823.png

屏幕截图 2024-11-11 155114.png

是在什么操作系统下进行的?我在 LinuxMint 下,从 EXT4 分区复制文件到 NTFS 分区中,没有遇到这种问题。

Debian 12

会不会和 Debian 系统的语言设置有关?我这边 locale 的配置情况是:

$ locale
LANG=zh_CN.UTF-8
LANGUAGE=zh_CN:zh
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=

这个没试过,我一直都是 LANG=en_US.UTF-8
因为很多地方感觉英文系统更方便些,所以直接就是默认的英文

试试看用smb共享拷贝出来呢

看看是不是编码问题,先用bash看一下文件名,比如git bash

具体是要怎么查看文件名的编码?

看不出来,只能一个一个试,然后看是不是乱码。
用bash改编码比较方便,也能看文件是不是出问题了。
一般来说,windows乱码主要就是gbk和utf8的差异。

好的,多谢指导

现在感觉又不太像是编码方式不同引起的乱码,而是文件名长度超过了文件系统的某些限制导致的。之前我使用 mkisofs 命令将文件打包为光盘镜像,发现一些文件名较长的文件,名称变成了下划线 ____,不知道您遇到的问题会不会也是类似的情况。

应该不是文件名过长,因为有些是很短的,我的文件都是音乐,专辑名基本都比较短,而且只要是英文的,再长的专辑名都没事儿

楼主需要多提供一些信息:是怎样“从 Debian 复制一批文件夹到 Windows ”的?

  • 是在哪个操作系统下进行复制操作的?
  • 是通过分区挂载还是通过ftp/smb 网络复制?
  • 如果是分区挂载,mount的选项是哪些?复制之前,在Debian上查看1990 - 想念你精选那些目录名是否正常?
  • 如果是 ftp ,用的客户端是什么程序?如果是smb,那么配置文件是怎么设置的?复制之前,在 ftp/smb 客户端上看1990 - 想念你精选那些目录名是否正常?

从 Debian 12 Gnome 桌面直接用鼠标,右键复制粘贴进 ntfs 或 fat 格式移动硬盘,原文件名是正常显示的,但复制进移动硬盘就变成一条线了,此时都还没粘贴进 Windows 系统

我有两个解决方案
1,写一个程序或脚本,创建每个文件的md5和文件名对照表,在Windows下重建文件列表
很明显没有现成的程序,如果您决定要编写,我可以帮您编写Windows端的程序或脚本,但另一端可能需要您自己完成
2,使用分区软件——如Windows下的diskgenius软件,直接打开ext4分区使用此软件对文件夹进行拷贝,以保证一致性

在此先多谢大佬的热心帮助。
不过我应该不需要这种方式了,因为我的文件全都是音乐,所以目前我自己的处理方案是移动到 Windows 平台之后,再使用 exiftool 直接读取音乐文件的 标签信息 ,重新生成一次文件名就可以重新改回原文件名了,这种方式对于目前的我来说,应该算是最为简单快捷的方式了。若之后没看到其他更好的方式,我就先按照我的方式处理着吧。
再次感谢本帖子中所有大佬的热心指导 :laughing:

其实您的方法很巧妙哦,您可以把帖子加上“已解决”字样以帮助可能出现这个问题的其他伙伴

好的。
就是有点儿变成了自问自答,最后还是用我自己的方法,有种奇奇怪怪的感觉 :rofl:

或许还有一种可能,是系统的汉字字符集不全。我用 mkisofs 制作光盘镜像时,没有指定字符集,命令行输出的意思好像是因为缺少字符集,所有汉字都会用下划线代替。

比如这样:

I: -input-charset not specified, using utf-8 (detected in locale settings)
Using V____000.VST;1 for  /V-四联剖面图.vst (V-剖面图.vst)
Total translation table size: 0
Total rockridge attributes bytes: 0
Total directory bytes: 402
Path table size(bytes): 10
Max brk space used 0
2580 extents written (5 MB)

所以我觉得,您的这个问题或许还是和系统的语言环境有一定关系。您使用的是英文系统,可能缺少一些和中文环境有关的软件包或库,因此部分涉及汉字的功能可能有一些问题。

您可以试试改一下 locale 设置,换成中文环境。

大概率是文件编码问题.

可以用FTP模式复制试试.