Massives Zeichensatzproblem: Bei UTF-8 zerlegt er mir ö,ä und ü

Begonnen von k00ni, 26. Januar 2008, 11:19:49

Vorheriges Thema - Nächstes Thema

Genau. Vorzugswiese konfiguriert man dies aber über den Webserver, da man sich mit header-Aufrufen in PHP leicht andere Probleme einhandelt, bspw. wenn man kein Output Buffering verwendet oder eine Ressource vergisst.

k00ni

Vorzugswiese konfiguriert man dies aber über den Webserver, [/quote]
Und was kann ich rein von der PHP-Ebene noch tun? Ich mein, bei mir zeigt er mir nun meine Zeichen sauber an. Nun werden aber die pSys internen falsch dargestellt. (Also die Sonderzeichen)
 
Grüße

Und was kann ich rein von der PHP-Ebene noch tun?[/quote]
Es ist nicht empfehlenswert, hier kaputten Output on the fly zu konvertieren. Du solltest also mal genau nachschauen, wie die Dateien zeichenkodiert sind und dann ggf. (numerische) Entities einsetzen oder rekodieren.

k00ni

Kodiert sind sie entweder:
- ISO-8859-1 mit Win (CRLF)
oder
- UTF8 mit Unix (LF)

Na, dann solltest Du alle Latin-9-Files in UTF-8 konvertieren. In den GNU-Tools gibt es recode, alternativ kannst Du dir auch mit den iconv-Funktionen ein eigenes Programm in PHP schreiben.

k00ni

Ich brauch das nicht, denn meine Dateien sind wie gesagt UTF-8. Es müsste der Powie seine nun sauber konvertieren, damit es bei ihm nicht mehr falsch ausschaut. Bei mir läuft es ja.
 
Grüße


sehnsucht

hatte ja die daten mit deinen ausgetauscht gehabt kooni habe aber immernoch ein zeichensatzproblemm

k00ni

Das lag nun denk ich daran, dass bei vielen Dateien im pSys noch der ISO-8859-1 Zeichensatz drin ist und die dort verwendeten Sonderzeichen unter UTF-8 nicht sauber dargestellt werden.
 
Grüße

black


 

 
 
das verursacht bei älteren browsern probleme. sie erkennen den doctype dann nicht mehr und schalten in den falschen parsing modus.
das kann dann zu falscher darstellung führen. z.b. wenn man xhtml strict nutzt, dann geht er in seinen \"fehlertoleranten\" modus und stellt alles falsch dar.
 

:        

 
 
das obige sollte langen. wenn nicht dann liefert der server einen falschen zeichensatz (php.ini unter default_charset, einfach auskommentieren mit einem ; davor)
und wenn man die php.ini nicht ändern kann, dann lässt sich das utf-8 mit einer .htaccess erzwingen:
 

AddCharset utf-8 .css .html .xhtml .php

 
 
und wenn auch das nicht geht, kann man in den php files einfach header verschicken:

header(\'content-type: text/html; charset=utf-8\');

k00ni

Danke! Werde mir das bei gegebener Zeit mal anschauen. /uploads/emoticons/icon_e_smile.gif.4a0acefcb917340d2c82e5239c009e6e.gif\" alt=\":)\" />

Um genau zu sein sind nur die beiden letzten Methoden, Header zu setzen, funktionsfähig. Die Idee, erst innerhalb eines Dokuments anzugeben, welchen Charsets das Dokument ist, ist relativ leicht als schwachsinning zu erkennen.

Powie

Ich kann es gern mal demonstrieren, die sicherste Variante ist die genannte php:header() Variante.
Für eine Neuinstallation easy zu erledigen, für ein vbereits bestehendes System wie zum Bsp. powie.de eine eztwas aufwendigere Sache, man müsste ja generell allen Content in der DB umstellen.

all your base are belong to us / Discord