mb_convert_encoding converting to ASCII instead of UTF-8
| From: | Robert William Vesterman | Date: | Wed, 23 Apr 2008 14:40:12 +0000 |
| Subject: | mb_convert_encoding converting to ASCII instead of UTF-8 | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-273467@lists.php.net to get a copy of this message | ||
I've run into a problem where mb_convert_encoding seems to be converting to ASCII, even though I'm telling it to convert to UTF-8. This is with PHP version 4.3.11.
I had been asking it to convert from "auto" to UTF-8, so at first I thought maybe "auto" was not the right choice. So I called "mb_detect_encoding" to see the format of what I was trying to convert; it said it was already UTF-8 (before I did the conversion).
So then I thought maybe I got the "from" and "to" parameters backwards (although I was confident I was following the documentation), so I changed mb_convert_encoding to use "UTF-8" as /both/ the from and to.
It still converts to ASCII.
I understand that, given that it's already UTF-8, I don't need to convert it to UTF-8. But other things that I receive might /not/ be UTF-8, so I am still concerned with this.
Sample code:
<html><head><title>Minnie</title></head><body><p>
<?php
$x = $_REQUEST['Minnie'];
echo $x . ' ... ' . mb_detect_encoding ( $x ) . '<br/>';
$x = mb_convert_encoding ( $x, "UTF-8", "UTF-8" );
echo $x . ' ... ' . mb_detect_encoding ( $x ) . '<br/>';
?>
</p></body></html>
Output, when called with URL parameter "Minnie=Miñoso":
Miñoso ... UTF-8
Mioso ... ASCII
Then I changed the "from" so that I could try converting from something other than UTF-8:
$x = mb_convert_encoding ( $x, "UTF-8", mb_detect_encoding ( $x ) );
And now, output when called with "Minnie=Mouse":
Mouse ... ASCII
Mouse ... ASCII
Does anyone have any idea what's going on here? Am I doing something wrong?
Thanks in advance for any help.