Home > Archive > PERL Beginners > March 2004 > Playing with Unicode
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
Playing with Unicode
|
|
| James Edward Gray II 2004-03-26, 11:14 pm |
| Why when I run this one-liner:
perl -e 'print "\x{2660}\n"'
do I see this:
Wide character in print at -e line 1.
I'm assuming that's a warning, since I still get the expected output,
but why am I getting it, when I didn't ask for them?
Is there a better way to drop in a unicode character?
Semi-related question: Is there a good document I could read somewhere
on the differences for one-liners in Windows?
Thanks.
James
| |
| Randy W. Sims 2004-03-26, 11:15 pm |
| On 3/25/2004 5:42 PM, James Edward Gray II wrote:
> Why when I run this one-liner:
>
> perl -e 'print "\x{2660}\n"'
>
> do I see this:
>
> Wide character in print at -e line 1.
>
> I'm assuming that's a warning, since I still get the expected output,
> but why am I getting it, when I didn't ask for them?
>
> Is there a better way to drop in a unicode character?
>
> Semi-related question: Is there a good document I could read somewhere
> on the differences for one-liners in Windows?
Hi James,
I'm not really up on unicode, but you might find something in 'perldoc
perluniintro' & 'perldoc perlunicode'.
The only information that I know of about running perl at the
commandline is in 'perldoc perlrun'. Although, I have a vague
recollection of seeing an article with hints and tips for one-liners
somewhere. Maybe a google search will find something.
Regards,
Randy.
| |
| David 2004-03-26, 11:15 pm |
| James Edward Gray II wrote:
> Why when I run this one-liner:
>
> perl -e 'print "\x{2660}\n"'
>
> do I see this:
>
> Wide character in print at -e line 1.
>
> I'm assuming that's a warning, since I still get the expected output,
> but why am I getting it, when I didn't ask for them?
>
different version seems to behave differently. my v5.6.0 never warn me about
it. my v5.8.2 does emit a warning. you can turn it off by saying:
[panda]# perl -mbytes=no -e 'print "\x{2660}\n"'
there is a long discussion about what Perl should do when it encounters a
byte sequence which is different than the current C local. should it
upgrade to UTF-8 silently? should it warn? if the current C local is not
UTF-8 then what? you can check the p5p list for the discussion.
david
--
s$s*$+/<tgmecJ"ntgR"tgjvqpC"vuwL$;$;=qq$
\x24\x5f\x3d\x72\x65\x76\x65\x72\x73\x65
\x24\x5f\x3b\x73\x2f\x2e\x2f\x63\x68\x72
\x28\x6f\x72\x64\x28\x24\x26\x29\x2d\x32
\x29\x2f\x67\x65\x3b\x70\x72\x69\x6e\x74
\x22\x24\x5f\x5c\x6e\x22\x3b\x3b$;eval$;
| |
| R. Joseph Newton 2004-03-26, 11:15 pm |
| James Edward Gray II wrote:
> Why when I run this one-liner:
>
> perl -e 'print "\x{2660}\n"'
>
> do I see this:
>
> Wide character in print at -e line 1.
Makes sense. 2660 would overflow a one-byte character.
>
>
> I'm assuming that's a warning, since I still get the expected output,
> but why am I getting it, when I didn't ask for them?
>
> Is there a better way to drop in a unicode character?
I think you need to warn the compiler ahead of time that you are reading or
writig unicode. It adapts anyway, but it's just reminding you. You might see
if you can make sense out of
perldoc encoding
perldoc perlunicode
though they are both rather windy and circuituous.
Joseph
| |
| James Edward Gray II 2004-03-26, 11:15 pm |
| On Mar 25, 2004, at 6:54 PM, Randy W. Sims wrote:
> On 3/25/2004 5:42 PM, James Edward Gray II wrote:
>
> Hi James,
>
> I'm not really up on unicode, but you might find something in 'perldoc
> perluniintro' & 'perldoc perlunicode'.
Thank you, these Documents are great, especially the first one.
If anyone is interested, you silence the warning by setting STDOUT to
Utf-8 output with:
binmode STDOUT, ":utf8";
James
|
|
|
|
|