Archive for October, 2008

Windows crappy Codepage

Nachdem ich nun über 5 Stunden damit verbracht habe die Umwandlung der Zeichen auf meiner Webseite zu korrigieren, möchte ich das veröffntlichen, damit andere davon einen Nutzen haben.
Umwandlung: latin1 (ISO8859-1) => utf8

Nun gut, das kann ja php auch von sich aus, dafür gibt es die Funktion utf8_encode(). Aber… wenn man sie verwendet, stellt man ganz schnell fest, dass einige Zeichen falsch dargestellt werden, z.B. das Euro-Zeichen. Warum ist das so?

Auch wenn man eine Webseite als latin1 deklariert hat, und die Zeichen entsprechend abspeichern möchte, ist Windows da etwas freizügiger und mischt in diese Codierung eigene Zeichen zu, die in latin1 eigentlich gar nicht enthalten sind. Diese zusätzlichen Zeichen ersetzen einige in latin1 definierten Steuerzeichen, die sonst nicht verwendet werden. Diese Mischung nennt Windows CP1252 (CP = Codepage). Interessanterweise werden diese Zeichen aber auch unter MacOsx auf der Webseite richtig dargestellt. Scheinbar haben die Softwarehersteller das einfach so hingenommen. Nur PHP nicht…

Ich habe mir nun auf der Grundlage von dieser I18N Aufstellung eine eigene Umwandlungsfunktion geschrieben, die genau diese Steuerzeichen ersetzt. Die Datei ist zwingenderweise utf8-codiert, das macht aber nichts. Man kann sie einfach in die bestehenden Dateien per include einbinden, die anderen Projektdateien können weiterhin latin1-codiert sein.

Quelltext für die Umwandlungsfuntkion: cp1252_to_utf8.php

Private-Key unter MacOsX auf einen entfernten Server kopieren

Um einen zuvor erstellten SSH-Key auf einen entfernten Rechner zu kopieren, gibt man auf der Konsole ein:

cat ~/.ssh/id_dsa.pub | ssh medium.ebesucher.de ‘cat - >> ~/.ssh/authorized_keys’