Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??

I started using Perl for CGI very recently (my admin finally enabled CGI support - I had to suffer under the burden of PHP till now). I made a small DBI-driven application and I didn't bother configuring Postgres or MySQL yet, so I use DBI:CSV. My mother tongue is Czech, so I use a lot of diacritics and thus everything I ever write is in utf8.

However, I didn't find a way to tell DBI to open the CSV file in utf8 mode, so everything that went in or out of the database was handled incorrectly. Being one of those who didn't know they do something wrong, I called _utf8_on on everything that came from the database and _utf8_off on everything that went in there.

When I set the taint mode on, _utf8_on simply stopped having effect. I don't know why. A little PerlMonks-SuperSearching and perldoc'ing let me rediscover the truth:

To interpret an (already utf8) string as utf8, use Encode::decode('utf8', $string). The other way around - to make my utf8 strings slip into the non-utf8 database stream uncrippled, I have to encode('utf8', decode('utf8'), $string)).

Why _utf8_on doesn't work in taint mode is still a mystery to me, but at least it made me learn cleaner ways. :-)

Update: I started wondering why I need to encode(decode()) and it's because I'm handling user input, not my own utf8 strings as I said.


In reply to _utf8_on in taint mode by Sixtease

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others perusing the Monastery: (5)
As of 2024-04-20 01:01 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found