Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

I just acquired a new Red Hat 8.0 Server w/ Perl 5.8.0. I am transitioning perl scripts over and encountered the following utf-8 problem/error when attempting to run a script that contains the module Date::Manip (a partial sample of the error sequence below):

Malformed UTF-8 character (unexpected non-continuation byte 0x78, immediately after start byte 0xf3) at /usr/lib/perl5/site_perl/5.8.0/Date/Manip.pm line 6451.
Malformed UTF-8 character (unexpected non-continuation byte 0x78, immediately after start byte 0xf3) at /usr/lib/perl5/site_perl/5.8.0/Date/Manip.pm line 6451.
Malformed UTF-8 character (unexpected non-continuation byte 0x6c, immediately after start byte 0xfa) at /usr/lib/perl5/site_perl/5.8.0/Date/Manip.pm line 6452.
Malformed UTF-8 character (unexpected non-continuation byte 0x6c, immediately after start byte 0xfa) at /usr/lib/perl5/site_perl/5.8.0/Date/Manip.pm line 6452.
Malformed UTF-8 character (1 byte, need 3, after start byte 0xe3) at /usr/lib/perl5/site_perl/5.8.0/Date/Manip.pm line 6460.


What do I need to do to get around/fix this in my script without actually having to break into the .pm module?

Any help would be greatly appreciated!

Replies are listed 'Best First'.
Re: Perl5.8.0/RH8/Date::Manip/UTF8 Problem
by perrin (Chancellor) on Jun 13, 2003 at 14:34 UTC
    Red Hat 8 and 9 set an incorrect locale of en_US.UTF8. This breaks whenever it reads a document that is not UTF8, which includes many things on CPAN. Go to /etc/sysconfig/i18n and change your locale to what it was in Red Hat 7.3, en_US.ISO8859-1.