in reply to how are ARGV and filename strings represented?
In Windows, @ARGV will contain the arguments encoded using the Active Code Page.
Elsewhere, @ARGV will be an exact copy of the string passed to exec or whatever.
open and Perl's other file operators suffer from The Unicode Bug. They will use the internal representation of the string provided. So in effect, it transforms the string as follows:
sub transform { my $s = shift; # Encode using utf8 string using the # upgraded/wide/UTF8=1 string storage format. utf8::encode( $s ) if utf8::is_utf8( $s ); return $s; }
On Windows, the string is expected to be the file name encoded using the Active Code Page.
|
---|