Puhmuckel: Wozu Unicode?

Beitrag lesen

Warum habe ich dann so extreme Probleme, wenn ich diese Funktion auf eine ®-Zeichen anwenden möchte?

function returnHTMLCompatible($input)
    {
        $reg = "<span style="vertical-align: 0.15em; font-size: 0.9em;">&#x00ae;</span>";
        if(is_array($input)) {
            foreach($input as $key => $value) {
                if (is_array($value)) {
             /* recursive call to test whether the array is still multidim or not */
      $input[$key] = $this->returnHTMLCompatible($value);
  } else {
                    //$value = htmlspecialchars($value);
                    $value = ereg_replace('&', "&amp;", $value);
             $value = ereg_replace('est®', "est<span style="text-decoration: underline;">c</span>®", $value);
                    $value = ereg_replace('®', $reg, $value);
                    $value = nl2br($value);
      $input[$key] = $value;
                }
            }
        } else {
            $input = ereg_replace('&', "&amp;", $input);
     $value = ereg_replace('est®', "est<span style="text-decoration: underline;">c</span>®", $input);
            $value = ereg_replace('®', $reg, $input);
            $value = nl2br($input);
        }
        return $input;
    }

Wenn ich die Unicode Daten aus der DB durch diese Funktion laufen lasse wird ständig ein schwarzes Quadrat plus das ® Zeichen ausgegeben. Vorher war alles in der DB Western Latin und da hat er das ® Zeichen schön höhergestellt und die Ausgabe sah gut aus.
Warum haut das nicht mehr hin ?