The way that text is encoded in a form POST depends on the encoding of the HTML page containing the form. So it is always advisable to explicitly declare your page encoding. This should be done in the response header with:
Content-Type: text/html; charset=UTF-8
and another way is use the
META tag in your HTML output:
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
Also, when you receive form parameters in a CGI script, you always need to decode them according to how they were encoded by the form:
use CGI qw(:standard);
use Encode;
...
my $name = Encode::decode('utf-8', scalar(param('name')));
Now
$name will contain code-points which is probably the most useful representation for your application. From there you can convert it to any other particular encoding when you need to.
This article: Character Conversions from Browser to Database does a good job of explaining the issues involved.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.