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

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

Dear PerlMonks,

I have found that I can print some Unicode characters to stdout but not all. I'm not sure why there is a difference.

I am using perl 5.22 under Cygwin on a 64-bit Windows 10 PC.

My code excerpt is as follows:

binmode(STDOUT, ":utf8"); binmode(STDERR, ":utf8"); print length("\N{LATIN CAPITAL LETTER A}\N{COMBINING ACUTE ACCENT}"), +"\n"; print "\N{LATIN CAPITAL LETTER A}\N{COMBINING ACUTE ACCENT}", "\n"; my $smiley_from_name = "\N{WHITE SMILING FACE}"; my $smiley_from_code_point = "\N{U+263a}"; print $smiley_from_name, "\n"; print $smiley_from_code_point, "\n"; my $dui = "\N{U+5C0D}"; print $dui, "\n"; die "\n", "\N{U+5C0D}", "\N{U+4E0D}", "\N{U+8D77}", ", the file $targe +t_file does not exist.\n\n" unless -e $target_file;
What I get is the following:
2
A'


?

???, the file yyy does not exist.

What I expected to get was the following:

2
A'




對不起, the file yyy does not exist.

So I am unable to figure out why some code points work just fine while others display only as ?.

Any suggestions?
謝謝你們