Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re^4: UTF-8: Trying to make sense of form input

by creamygoodness (Curate)
on Aug 16, 2009 at 05:41 UTC ( #788975=note: print w/ replies, xml ) Need Help??


in reply to Re^3: UTF-8: Trying to make sense of form input
in thread UTF-8: Trying to make sense of form input

I think you're right that the OP needs to grasp the mental model you've laid out.

But I predict that until the OP masters debugging the encoding -- which requires understanding the role of the UTF8 flag -- problems are going to keep cropping up. If there were an "encoded/decoded" flag that you could check, that would be lovely. Since no such flag exists, you need to be able to look at the raw string and the presence/absence of the UTF8 flag in Devel::Peek to see what's going wrong.

There are simply too many opportunities to mess up. Forget a binmode() here, omit (or include) a -utf8 argument there, forget to set pg_enable_utf8 on your DBD::Pg db handle, pass something through YAML::Syck without setting $YAML::Syck::ImplicitUnicode, and so on.

In short... documentation and Hungarian notation are too unreliable :) -- because the underlying system is too hard to control from a high level.

IMO, the only way to achieve high reliability for UTF-8 is to write tests.

use Test::More tests => 1; my $smiley = "\x{263a}; my $maybe = round_trip($smiley); is( $maybe, $smiley, "String survives round trip including UTF8 flag" );

PS: You updated your node multiple times over the half hour or so after it was posted, forcing me to keep rewriting my reply. :(


Comment on Re^4: UTF-8: Trying to make sense of form input
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://788975]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (13)
As of 2014-09-16 16:23 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (34 votes), past polls