Am 30.08.2011 14:12, schrieb Louis Huppenbauer:
Why don't you just check if the string is utf8 or not, and change convert it accordingly?

$out = trim((mb_detect_encoding($input, 'UTF-8', 'ISO-8859-1') == 'UTF-8' ? $input : utf8_encode($input)));

It may not be the most elegant version, but I can't think of anything simpler right now.


Hello Louis, thank you that solved the problem. Looks like I did not use the mb_detect_encoding properly in my tests.

Regards, Merlin

2011/8/30 Merlin Morgenstern < <>>

    Hi there,

    I am trying to find a solution for decoding the same string from 2
    different character sets (UTF-8, Latin-1)

    Looks like in the case of latin-1 I need to add utf8_encode before
    to get the same results. Here is an example

    // utf-8
    $input = urldecode('%20%C3%9Cbersetzung%20franz');
    $output = trim(($input));
    $output2 = urlencode($output);
    echo $input.'<br>'.$output.'<br>'.$output2;
    echo '<a href="'.$output2.'">output 2</a>';

    echo '<hr>';
    // latin 1
    $input = urldecode('%DCbersetzung+franz');
    $out = trim(utf8_encode($input));
    $out2 = urlencode($out);
    echo $input.'<br>'.$out.'<br>'.$out2;
    echo '<a href="'.$out2.'">output 2</a>';

    The latin-1 seems to need the utf8-encode to get the same result.
    Has anybody an idea on how to solve this? I need a function that
    works for latin-1 and UTF-8.

    Thank you in advance for any help,


-- PHP General Mailing List (
    To unsubscribe, visit:

Reply via email to