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.
In reply to Re: UTF-8 for Everything
by Jim
in thread UTF-8 for Everything
by shawnhcorey
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |