Forum: PC-Programmierung lighttpd mit php5 Unterstützung Umlaute rauben mir den NERVEN!


von uff (Gast)


Lesenswert?

Hallo zusammen,
ich hab ein Debian Grundsystem und wie oben im Betreff genannt einen 
Webserver am laufen.

Läuft auch alles sehr stabil, jedoch werden die Umlaute total merkwürdig 
dargestellt.

Ok, dann hab ich mal Tante google befragt.
Anscheinend würde sich das Problem lösen, wenn man die Zeichenkodierung 
auf
iso-8859-1 umstellt.

daher ich als erstes mal locales neu eingestellt:

root@debian-igel:~# dpkg-reconfigure locales
Generating locales (this might take a while)...
  de_DE.ISO-8859-1... done
  de_DE.UTF-8... done
Generation complete.


Am Ende hatte ich utf-8 fürs Hauptsystem ausgewählt.

Anschließend hatte ich die php.ini folgendermasen abgeändert:
default_charset = "iso-8859-1"

dann halt noch die lighttpd.conf:
dir-listing.encoding        = "iso-8859-1"

dann den Server neugestart:
/etc/init.d/lighttpd restart

Wenn ich aber wieder auf meinen Server zugreife, bekomme ich weiterhin 
die Umlaute merkwürdig dargestellt.

An was könnte es liegen?

Cu uff

von Andreas D. (rackandboneman)


Lesenswert?

Filesystemtyp und Mountoptionen sind bei solchen Problem auch ggf 
relevant.

Welchen Encodingtyp musst du denn im Webbrowser einstellen damit die 
Anzeige stimmt?

von uff (Gast)


Lesenswert?

@ Andy D. warum sollte ich beim Webbrowser einen anderes encoding 
einstellen, wenn alle Seiten richtig dargestellt werden.

Wie gesagt spinnt irgendwo mein Webserver mit den Umlauten

von Der Weise (Gast)


Lesenswert?

Gebe mal im HTML-Code so etwas ein:
ü  ö  ß
das sollte ü, ö, ß darstellen. Wenn das nicht funktioniert, ist 
tatsächlich etwas falsch, wenn es aber geht hast du lediglich falsch 
programmiert...
Denn: Den Webserver interessieren Encodings etc. überhaupt nicht, der 
leitet nur weiter. Die sicherste Methode ist eben immer ö etc. zu 
schreiben, eine andere Möglichkeit ist deine Quellcodedateien als UTF-8 
zu speichern (im Texteditor auszuwählen) und dann in den HTML-Header 
folgendes zu schreiben:
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
Nach "HTML UTF-8" zu googlen hilft auch. zB da:
http://de.selfhtml.org/html/allgemein/zeichen.htm

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Du musst in der HTML, im Content-Type header, in der Datenbank und beim 
Fileencoding die korrekten Werte haben. Da würde ich mal forschen an 
welcher Stelle es nicht mehr passt, dann gibt es auch keine Probleme mit 
den Sonderzeichen.

von Troll (Gast)


Lesenswert?

Der Weise schrieb:
> Die sicherste Methode ist eben immer &ouml; etc. zu
> schreiben

Das ist die schlechteste Methode. Damit wird das Problem nur scheinbar 
behoben. Versuch mal andere Zeichen, die nicht im ISO-8859-1 vorhanden 
sind, darzustellen.

uff schrieb:
> Anscheinend würde sich das Problem lösen, wenn man die Zeichenkodierung
> auf
> iso-8859-1 umstellt.

Besser wäre es komplett auf UTF8 umzustellen. Erstell mal eine einfache 
HTML-Datei und schreib da Sonderzeichen rein. Beim speichern darauf 
achten, dass die Kodierung auf utf8 ist. Mit LiveHTTPheaders (Firefox 
Addon) prüfen ob auch der richtige Header gesendet wird.

von Der Weise (Gast)


Lesenswert?

Troll schrieb:
> Das ist die schlechteste Methode. Damit wird das Problem nur scheinbar
> behoben.
Dass das besonders toll ist, sag ich nicht, das funktioniert nur 
vermutlich in den meisten Fällen. Der ganze "Webtechnologie"-Murks 
basiert doch auf schlechtesten, aber meistens funktionierenden 
Methoden...
> Besser wäre es komplett auf UTF8 umzustellen.
So die Theorie. Da aber immer noch welche dem ISO-8859-* Chaos 
hinterhertrauern...

von uff (Gast)


Lesenswert?

Nochmal viel Dank für Eure Hilfe...
folgendes hatte geholfen:

root@debian-igel:~# dpkg-reconfigure locales
Generating locales (this might take a while)...
  de_DE.UTF-8... done
Generation complete.

ich hatte nur utf-8 ausgewählt.

dann die php.ini abgeändert:
default_charset = "utf-8"

dann halt noch die lighttpd.conf:
dir-listing.encoding        = "utf-8"


jetzt funktioniert alles hervorragend ;)

Das Problem schien die php.ini zu sein, denn ich kann mich daran 
erinnern das es so aussah: ;default_charset = "utf-8".

Ich hatte damals das Semikolon entfernt aber dann auch gleich iso 
eingetragen....das war ein Irrtum !!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.