>> > A path is always a Unicode string, while a DB name can
be an arbitrary
>> > binary blob.
>>
>> On many POSIX platforms, a path is a blob which does not contain
>> '\000'. These systems do not enforce Unicode encoding at all.
>
> My mistake. I was unaware.
> On those platforms, how do you type a path name into a terminal?
There are some files which are not directly nameable. Many programs
support special sequences such as “Ctrl+V 3 7 7” to enter arbitrary
bytes, but that's not universal. Depending on the actual
implementation of the terminal, cut-and-paste of funny file names can
work, too.
Older programs have trouble accessing such files even if the user
chooses them in a file selection dialog, but current version are
supposed to have been fixed (including OpenJDK, which took a
ridiculously long time). Beyond that, it's not much different from
dealing with file names in an unfamiliar script.
Interesting.
So ultimately, there are always going to be things that you cannot
type into your terminal directly.