G'day Raymond,
Here's a few examples that may clarify the differences between handling UTF-8 in your output and in your source code. Here's how those characters should render: Ä = Ä and Δ = Δ. I've used <pre>...</pre> tags so that the characters (e.g. Δ), and not the entities (e.g. Δ), are displayed.
Baseline code generating "Wide character" warning:
$ perl -Mstrict -Mwarnings -E '
say "\xC4 and \x{0394} look different";
'
Wide character in say at -e line 2.
Ä and Δ look different
Using binmode function to specify UTF-8 output:
$ perl -Mstrict -Mwarnings -E '
binmode STDOUT => ":utf8";
say "\xC4 and \x{0394} look different";
'
Ä and Δ look different
Using the open pragma to specify UTF-8 output:
$ perl -Mstrict -Mwarnings -E '
use open qw{:std :utf8};
say "\xC4 and \x{0394} look different";
'
Ä and Δ look different
Attempting to use UTF-8 in the source code without letting Perl know:
$ perl -Mstrict -Mwarnings -E '
binmode STDOUT => ":utf8";
say "\xC4 and \x{0394} look different";
say "Ä and \x{c4} look different";
say "Δ and \x{0394} look different";
'
Ä and Δ look different
à and Ä look different
Î and Δ look different
Using the utf8 pragma to tell Perl there's UTF-8 in the source code:
$ perl -Mstrict -Mwarnings -E '
use utf8;
binmode STDOUT => ":utf8";
say "\xC4 and \x{0394} look different";
say "Ä and \x{c4} look the same";
say "Δ and \x{0394} look the same";
'
Ä and Δ look different
Ä and Ä look the same
Δ and Δ look the same
-- Ken
In reply to Re: a new example
by kcott
in thread a new example
by Raymond
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |