Perl Unicode Cookbook: Decode @ARGV as Local Encoding
℞ 14: Decode program arguments as locale encoding
While it may be most common in modern operating systems for your command-line arguments to be encoded as UTF-8, @ARGV
may use other encodings. If you have configured your system with a proper locale, you may need to decode @ARGV
appropriately. Unlike automatic UTF-8 @ARGV
decoding, you must do this manually.
Install the Encode::Locale module from the CPAN:
# cpan -i Encode::Locale
use Encode qw(locale);
use Encode::Locale;
# use "locale" as an arg to encode/decode
@ARGV = map { decode(locale => $_, 1) } @ARGV;
Previous: ℞ 13: Decode @ARGV as UTF-8
Series Index: The Standard Preamble
Tags
Feedback
Something wrong with this article? Help us out by opening an issue or pull request on GitHub