View Single Post

  #2 (permalink)  
Old 04-23-2008
Robert William Vesterman
 
Posts: n/a
Default Re: [PHP] mb_convert_encoding converting to ASCII instead of UTF-8

A little additional info: The "ASCII to ASCII" case for "Minnie=Mouse"
is merely because the UTF-8 encoding for "Mouse" is the same as the
ASCII encoding for "Mouse", and mb_detect_encoding is matching on ASCII
before UTF-8. So that's not an issue.

But, the "UTF-8 to ASCII" case for "Minnie=Miņoso" is still (seemingly)
screwy.

Robert William Vesterman wrote:
> 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.
>
>


Reply With Quote