Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

UTF-8 Funktionen - utf8-decode

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
silent321
PostRank 3
PostRank 3
Beiträge: 73
Registriert: 13.01.2009, 17:39

Beitrag von silent321 » 01.06.2009, 10:41

Ich habe mich heute mit dem Thema kodierung auseinandergesetzt und habe noch eine grundlegende Frage.

Meine PHP Seite habe ich UTF-8 kodiert und es funktioniert auch so wie ich es möchte, was ich jedoch nicht verstehe ist, dass ich jetzt bei vielen Funktionen wie is_file, filemtime(), touch(), file() ect. ein utf8_decode() benutzen muss wenn im string umlaute vorhanden sind.
Arbeiten diese Funktionen generell nicht mit utf-8, ich verstehe das ganze nicht so ganz?

Im Endeffekt funktioniert nun mein Script jedoch habe ich an vielen Stellen utf8_decode einbauen müssen.

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Mork vom Ork
PostRank 9
PostRank 9
Beiträge: 2557
Registriert: 08.07.2008, 11:07
Wohnort: Aufm Friedhof.

Beitrag von Mork vom Ork » 01.06.2009, 15:03

silent321 hat geschrieben:was ich jedoch nicht verstehe ist, dass ich jetzt bei vielen Funktionen wie is_file, filemtime(), touch(), file() etc. ein utf8_decode() benutzen muss
PHP ist grundsätzlich nicht in der Lage, ein Zeichen als Zeichen zu behandeln, sondern sieht jedes Zeichen als Zahl bzw. Byte an. Daraus resultieren Probleme, wie du sie gerade hast; bei der Übergabe aus PHP an oder von einem anderen System (hier: Betriebs- bzw. Dateisystem) ist keine transparente Konvertierung vorgesehen, falls dieses System eine andere Kodierung nutzt.

Die Konvertierung in einen schlechteren Zeichensatz, so wie es utf8_decode() mit utf-8 nach iso-8859-1 macht, birgt ein gewisses Risiko, weil dabei zwangsläufig Zeichen verloren gehen oder falsch interpretiert werden; das €-Zeichen ist da ein ganz kritischer Problemfall. So gesehen würde ich dir dringend raten, statt einer Konvertierung an solchen Stellen nur US-ASCII zuzulassen, bestenfalls eine automatische Konvertierung der Umlaute in ae etc. durchzuführen und alles andere strikt zurückzuweisen.

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag