Description
Description
I've some directories and files whose names are comprised of tabs (
). Inside dolphin-25.04.2-1.fc42
(on cpe:/o:fedoraproject:fedora:42
), these render as expected:
However, in FilesPreview
, these render as UTF tofu:
To confirm, if I duplicate one of their filenames to my Windows clipboard, I see:
`{title ,id s22ai3}`{.JSON5}.dir
However, this should be, per my Linux installation:
`{title: "", id: "s22ai3"}`{.JSON5}.dir
...which can be confirmed with tree
there:
. └── \011`{title: "",\011id: "s22ai3"}`{.JSON5}.dir
This is a significant problem, because it means that Files is performing character replacement, thereby potentially making unintentionally modifying the filename trivial. I haven't confirmed this because I don't dare: I should have mounted this as ro
.
Please note that although, in the browser, you're probably seeing hexagana if you're using Windows, this is font-dependent, so Files isn't doing anything special. It's merely not rendering the characters. As an example, explorer.exe "\\?\UNC\wsl.localhost\fedoraremix\mnt\rjlb_data\@{'Name'='Entities'}#.dir\@{'Status'='Commenced'; 'Name'='In Use'}#.dir\@{'Person'='Beedell'; 'Identifier'='S21AIB'}#.dir\@{'Name'='Entity-Specific'}#.dir\@{'Person'='Roke'; 'Identifier'='S1EV2L'}#.dir\@{'Name'='Temporary'}#.dir\. [ ]`{title Git,id s2ykra}`{.JSON5}.dir"
also fails to, but renders another (incorrect) replacement character:
Steps To Reproduce
-
Using a real Linux OS, in a BTRFS filesystem, create a path longer than
MAX_PATH
that contains tab characters. -
Create the undermentioned structure: 1
-
#!/usr/bin/env sh sudo lsblk -f
-
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS sda sdb sdc [SWAP] sdd 954.8G 0% /mnt/wslg/distro / sde ├─sde1 ├─sde2 ├─sde3 └─sde4 1.4T 24% /mnt/test sdf └─sdf1 184.3G 90% /mnt/rjlb_data
To do so:
-
#!/usr/bin/env pwsh #Requires -PSEdition Core If ($IsWindows) { sudo wsl --mount \\.\PHYSICALDRIVE1 --bare }
-
#!/usr/bin/env sh sudo lsblk -f # Utilise the output to confirm that the *device* has been mounted into `wsl`, then set its path as `$dev_id`, and define a mount point at `$path`. sudo mount -t btrfs /dev/$dev_id /mnt/$path
-
Files Version
3.9.10.0
Windows Version
10.0.26120
User ID
353b71b8-86f9-4fe0-ac0e-e1da114b9349