On 2009-Aug-19, at 5:00 am, Troels Liebe Bentsen wrote:
My idea of working with file names would be that we default to locale or filesystem settings, but give the options of working with paths/file names as
binary or a specific encoding.

As mentioned in the old thread, encoding is only vaguely related to locale. The problem (or one of them) is that if I create a file today, and then change my locale tomorrow, I end up with a garbled filename. Of course, people don't as a rule change to a different locale every day, but I still think this is a situation where we need to put the onus on the user.

That is, either Perl can determine the encoding (e.g. because the filesystem indicates it in some way), or else the user needs to pick one explicitly. If you get a list of files from reading a dir, and don't need to display the names or anything, you might get away with treating them as undistinguished bytes; but as soon as Perl does anything that needs an encoding and one hasn't been specified, it should complain bitterly.

It's the same reasoning why I think specifying a timezone should be required: it's not that much work for the user to add "use IO::Encoding $volume => <utf-8>", and at least that way naive users will be alerted to the fact that something's going on. It's up to them how much effort they think is worth devoting to the issue, but at least they will be warned that there's an issue there to grapple with.


Reply via email to