On Sun, 2003-01-05 at 22:00, Richard Braakman wrote: > Hmm. Remember the far more common case of a program that takes a > filename on the command line and then tries to open it. The user > would have typed it in the local encoding, so it needs conversion. > On the other hand, if the program was invoked by another program > then the filename is likely to already be in UTF-8. > > I guess this conversion should be done by the user's shell, and all > filename arguments on the command line should be encoded in UTF-8. > Umm, except that the shell doesn't know which arguments are filenames. > How should this be done?
Just to answer this a bit more directly; no, I think the shell should do no conversion. It should just pass its input on to programs in the encoding it received it. So for people using legacy encodings, yes, programs will receive filenames in those encodings, not UTF-8. But hopefully programs will handle it, and convert them to UTF-8 internally, and write them out as UTF-8. But if they don't, then they don't (unless we fix the program). There's not much we can do about it, until switching users to UTF-8 locales and terminals.