DAB Asked: 2021-12-30 10:47:42 +0800 CST2021-12-30 10:47:42 +0800 CST 2021-12-30 10:47:42 +0800 CST 以十六进制查看文件名? 772 我有一些带有特殊字符的文件,例如重音字母。 它们是有效的名称,但由于某种原因,当它们通过网络复制到驱动器时,可能是另一种格式,名称看起来仍然相同,但并不相同。 我可以将文件复制回来,现在我有两个文件在完全相同的路径中似乎具有完全相同的名称。 我的猜测是有两个不同的值表示重音字母,因此它们看起来相同。有没有办法查看名称本身的十六进制,而不是文件? 这很重要,因为我的一个同步应用程序变得混乱并创建了重复项。 debian filenames 1 个回答 Voted Best Answer Stephen Kitt 2021-12-30T10:52:48+08:002021-12-30T10:52:48+08:00 将文件名通过管道传输到od或类似的工具: printf '%s\n' * | od -t x1 -a $ ls Accentué bar foo $ printf '%s\n' * | od -t x1 -a 0000000 41 63 63 65 6e 74 75 c3 a9 0a 62 61 72 0a 66 6f A c c e n t u C ) nl b a r nl f o 0000020 6f 0a o nl 0000022 许多字符可以有不同的表示,即使在相同的编码中;例如,在UTF-8中,0xC3 0xA9代表é,0x65 0xCC 0x81代表e后跟“组合重音”,也显示为é。这样的字符串如果要进行比较,就需要进行规范化,但即使是规范化也有不同的变体,不同的操作系统可以以不同的方式存储相同的字符串。
将文件名通过管道传输到
od
或类似的工具:许多字符可以有不同的表示,即使在相同的编码中;例如,在UTF-8中,0xC3 0xA9代表é,0x65 0xCC 0x81代表e后跟“组合重音”,也显示为é。这样的字符串如果要进行比较,就需要进行规范化,但即使是规范化也有不同的变体,不同的操作系统可以以不同的方式存储相同的字符串。