dedlfix: Komische Zeichen beim ersten Seitenladen

Beitrag lesen

echo $begrüßung;

  1. in meinem anderen Editor habe ich zur Auswahl, die Datei mit folgenden Line-Breaks zu speichern:
    Macintosch
    Unix
    DOS
    Unicode
    Ist es egal, welches ich nehme bzw. was bewirken die verschiedenen Einstellungen?

Darf ich dich da auf die Wikipedia verweisen, die erklärt den Zeilenumbruch ausführlicher als ich das eben machen wollte. Die Variante Unicode ist mir noch nicht übern Weg gelaufen. Meiner persönlichen Meinung nach scheint das keine große Verbtreitung haben. Sie ist auch nur auf der englischsprachigen Seite LineFeed zu finden.

  1. Zum Includieren:
    Müssen die aufrufende Datei und die Includes die gleiche Kodierung aufweisen?

Zum einen sind inkludierte Dateien so zu betrachten, als ob ihr Inhalt an der inkludierenden Stelle stünde. Zum anderen hat PHP derzeit noch keine direkte Unterstützung von Mehrbyte-Kodierungen. Es geht von "1 Byte = 1 Zeichen" aus. Da es weder seine Textstrings noch den HTML-Teil weiter beachtet, ist es an dir, für die richtige Kodierung zu sorgen. Es ist auch technisch unmöglich, eine Zeichenkodierung einwandfrei zu erkennen. Als Mensch sieht man aus dem Zusammenhang, dass ein bestimmter Krakel eigentlich ein U statt ein X darstellen soll, doch der Rechner ist noch nicht so intelligent. Die HTML-Teile werden von PHP einfach nur durchgereicht. Wenn du da eine unterschiedliche Kodierung hast, wird die 1:1 in das fertige Dokument übernommen, was zu Zeichensalat führt, da die Kodierung nur dokumentweit angegeben werden kann. Strings könntest du zumindest mit den Umkodierfunktionen bearbeiten. Doch das geht nur solange gut, solange alle Zeichen in der Zielkodierung darstellbar sind. Umkodierfunktionen sind in der iconv-Extension enthalten, und weniger mächtig auch in recode. Beides sind optionale Bestandteile PHPs. In den XML-Parser-Funktionen sind außerdem noch utf8_decode() und utf8_encode() enthalten, die aber nur die unteren 256 Zeichen aus dem Unicode-Vorrat zwischen UTF-8 und ISO-8859-1 umwandeln können.

echo "$verabschiedung $name";