Dealing with UTF8 in Perl

If you have Perl warnings enabled (like a good developer), chances are you’ve seen something like this when executing your script:

Wide character in print at ./[file].pl line [x].

As with everything in Perl, there are Many Ways™ to deal with this.

The first is to include the following line along with your regular Perl boilerplate. I always write my scripts and text files in UTF8, so this merely enforces UTF8 output.

binmode(STDOUT, ":utf8");

This will deal with those warnings, and let you get on with your work.

An alternative is to enforce UTF8 for STDIN and STDERR, as well as STDOUT with this line.

use open qw/:std :utf8/;

And of course, there’s always a trusty environment variable.

export PERL_UNICODE=SDL

Liked this post?

Feel free to throw me a cup of coffee or an Amazon Wish List item. Cheers!


Post chronology

← Congratulations @hanezawakirika and @uberlutzer!
→ I don’t always make lame networking memes