perl -CSD -le " print qq{use utf8;\nprint qq{I \x{2665} Perl\n};\n}; "
+ >foo.pl
I get
use utf8;
print qq{I ♥ Perl
};
If I run that through perltidy or your program its unchanged
cmd.exe doesn't know how to display the unicode without a chcp, but the bytes are the same
If I add to your program use Data::Dump qw/pp /;
print STDERR pp("$output_string");
I get unchanged correct result as expected "use utf8;\nprint qq{I \xE2\x99\xA5 Perl\n};\n\n"
by default cmd.exe does not unicode
$ chcp
Active code page: 437
$ type foo.tdy
use utf8;
print qq{I ΓΦΡ Perl
};
If I change it I get a heart $ chcp 65001
Active code page: 65001
$ type foo.tdy
use utf8;
print qq{I ♥ Perl
};
|