Michael Wallner wrote:
> it seems that the function doesn't work with higher
> values like "\u20AC" which is the EUR symbol :-(

Hi Mike,

it's most probably the font you're using that does not have support for the
EUR symbol. I tested the following on my box, and it displays fine:

<?php
    function unichr($hex)
    {
        $utf = '';
        $hex = hexdec((substr($hex, 0,2) === '\\u') ? substr($hex, 2) :
$hex);
        
        if ($hex < 128) {
            $utf = chr($hex);
        } elseif ($hex < 2048) {
            $utf .= chr(192 + (($hex - ($hex % 64)) / 64));
            $utf .= chr(128 + ($hex % 64));
        } else {
            $utf .= chr(224 + (($hex - ($hex % 4096)) / 4096));
            $utf .= chr(128 + ((($hex % 4096) - ($hex % 64)) / 64));
            $utf .= chr(128 + ($hex % 64));
        }
        return $utf;
    }
    header('Content-Type: text/plain; charset: utf-8');
    print unichr('\\u20AC');
?>

Most fonts (used to) only have the iso 8859-1 characters, and the EUR symbol
is only added in iso 8859-15.

Hope that solves your problem... 

Keep up the good work :)

regards,
asgeir

-- 
PHP Internationalization Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to