summaryrefslogtreecommitdiffstats
path: root/perl/perl-encode-locale/README
blob: 586df94791bd1d13256114c3b0d81d273317ff13 (plain)
Perl module to determine the locale encoding.

In many applications it's wise to let Perl use Unicode for the strings
it processes. Most of the interfaces Perl has to the outside world is
still byte based. Programs therefore needs to decode byte strings that
enter the program from the outside and encode them again on the way out.
The POSIX locale system is used to specify both the language conventions
requested by the user and the preferred character set to consume and
output. The Encode::Locale module looks up the charset and encoding
(called a CODESET in the locale jargon) and arrange for the Encode module
to know this encoding under the name "locale". It means bytes obtained
from the environment can be converted to Unicode strings by calling
Encode::encode(locale => $bytes) and converted back again with
Encode::decode(locale => $string).
Where file systems interfaces pass file names in and out of the program
we also need care. The trend is for operating systems to use a fixed file
encoding that don't actually depend on the locale; and this module
determines the most appropriate encoding for file names. The Encode
module will know this encoding under the name "locale_fs". For
traditional Unix systems this will be an alias to the same encoding
as "locale".