UTF-8 zu ANSI

Kracky

Mitglied
Hallo,

ich weiß es gibt schon n haufen Threads und google und so aber ich konnte leider nichts finden was mein Problem löst :)

Meine ganzen .php Datein sind als UTF-8 ohne BOM kodiert.
In der theorie funktioniert das ganze nur sagt mein Webspace Hoster das alle Dateien als ANSI ausgelesen werden sollen.

Mit anderen Worten alles was ä,ü,ö etc ist wird als wirrwarr dargestellt.

Ich habe aber leider keine Berechtigung um an den Server Einstellungen rumzuspielen also muss ich es irgendwie hinkriegen das er aus dem blöden ANSI wieder UTF-8 macht - oder halt einfach die Zeichen vorher in ANSI umschreibt. Automatisch natürlich.

Das ganze funktioniert zur Zeit so das Strings in einer Datenbank gespeichert werden.

Diese werden wiederum nach Aufruf auf der Website ausgegeben.

Gibt es irgendeine Funktion oder irgendetwas das ich tun kann ohne jedes ä.ö,ü von Hand in ein $auml; etc zu schreiben? :o
 
Hi,

die einfachste Lösung wäre meiner Meinung nach das Verwenden von ob_start() und ob ob_get_clean() in Verbindung mit der utf8_decode(). Diese Funktionen einfach als "Wrapper" um dein Script herum einbauen, dann musst du normalerweise nicht jede Datei einzeln ändern.

Beispiel:
PHP:
<?php
  ob_start(); // Puffer starten

  /* dein ganzer code mit ausgaben etc. */

  $content = ob_get_clean();  // Puffer holen
  echo utf8_decode($content);  // Ausgabe als ANSI (ISO-8859-1)
?>

Das schöne an der Lösung ist, wenn du den Hoster wechselst, kannst ganz leicht wieder auf UTF-8 zurückstellen.

Grüße,
BK
 
Ob jetzt macht er statt dem Wirrwarr nur noch einfache "?" an der Stelle.

Funktioniert also leider auch nicht so ganz :/

ich habs auch schon mit header charset versucht im meta steht sowieso charset auf utf-8
in den Servereinstellungen steht Standart Charset auf Off.
 
Zurück