BEGIN { if ($^O eq 'Win32') { require Win32; my $cie = "cp" . Win32::GetConsoleCP(); my $coe = "cp" . Win32::GetConsoleOutputCP(); my $ae = "cp" . Win32::GetACP(); binmode(STDIN, ":encoding($cie)"); binmode(STDOUT, ":encoding($coe)"); binmode(STDERR, ":encoding($coe)"); require open; "open"->import(":encoding($ae)"); require Encode; @ARGV = map { Encode::decode($ae, $_) } @ARGV; } else { require encoding; my $e = encoding::_get_locale_encoding() // 'UTF-8'; require open; "open"->import(':std', ":encoding($e)"); require Encode; @ARGV = map { Encode::decode($e, $_) } @ARGV; } }