Re: utf8 encoding £ to £ problem
| From: | Nisse Engström | Date: | Wed, 13 Dec 2006 19:28:19 +0000 |
| Subject: | Re: utf8 encoding £ to £ problem | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-245811@lists.php.net to get a copy of this message | ||
On Tue, 5 Dec 2006 12:37:48 -0000, "Chris Dean" wrote:
> I was just wondering if anyone knows why php's utf8_encode
> function converts the £ symbol into £
Yes. The '£' character is a two-octet sequence
in UTF-8. The problem is that you are viewing it
as if it were encoded in ISO-8859-1 (or similar).
These are the octet sequences for the characters
involved:
Character ISO-8859-1 UTF-8
----------- ---------- -------
£ (pound) <a3> <c2 a3>
 (A-circ.) <c2> <c3 82>
In other words, you are seeing the two characters
<c2><a3> instead of the one character <c2 a3>.
The fact that <a3> appears in both encodings is
nothing more than an interesting coincidence.
Example (right):
<?php
header ('Content-Type: text/plain; charset=utf-8');
echo utf8_encode ("\xa3");
?>
Example (wrong):
<?php
header ('Content-Type: text/plain; charset=iso-8859-1');
echo utf8_encode ("\xa3");
?>
--nfe