http://www.perlmonks.org?node_id=1042970


in reply to UTF-8 for Everything

I was using use encoding qw( UTF-8 ); but in Perl 5.18 it's deprecated.

As vsespb said, do this instead:

use utf8;

This pragma allows you to use non-ASCII characters inside your Perl script—that is, characters outside the Basic Latin block of Unicode.

I'm using this as a stop-gap:
use open qw( :encoding(utf8) ); binmode STDIN, qw{ :encoding(UTF-8) }; binmode STDOUT, qw{ :encoding(UTF-8) }; binmode STDERR, qw{ :encoding(UTF-8) };

As duelafn said, do this instead:

use open qw( :encoding(UTF-8) :std );

Carefully read Tom Christiansen's (tchrist) brilliant and exhaustive Stack Overflow post Go Thou and Do Likewise. Pay particular attention to the first section titled Simplest Rx:  7 Discrete Recommendations. These seven recommendations are essentially the answer to your question, "What is the best way to get Perl to use UTF-8 for everything?" Then read jrockway's excellent followup post.

Tom's Stack Overflow post evolved into a presentation that he gave at OSCON 2011. The slides are here.

Replies are listed 'Best First'.
Re^2: UTF-8 for Everything
by sundialsvc4 (Abbot) on Jul 07, 2013 at 14:54 UTC

    I only regret that I have but one up-vote to lend to your posting, and especially the links.   Thank you very much.