Я сделал еще несколько запросов по этой теме и пришел к выводу, что существует два разных способа обработки кодировки имен файловыми системами Unixoid.
Имена файлов кодируются в «локали системы», которая обычно совпадает с текущей локалью среды, которая отражается командой locale
(но некоторые предварительно заданы в глобальной конфигурации) файл).
Имена файлов кодируются в UTF-8, независимо от каких-либо региональных настроек.
GTK + решает этот беспорядок, предполагая UTF-8 и позволяя переопределить его либо текущей кодировкой локали, либо предоставленной пользователем кодировкой.
Qt решает это, предполагая кодировку локали (и эта локаль системы отражается в текущей локали) и позволяя переопределить ее с помощью предоставленной пользователем функции преобразования.
Итак, суть в следующем: используйте либо UTF-8, либо то, что LC_ALL или LANG сообщают вам по умолчанию, и предоставьте настройку переопределения по крайней мере для другой альтернативы.