Umlaute und nochmal Umlaute

Status
Nicht offen für weitere Antworten.

dennis-sauer

Erfahrenes Mitglied
Hallo zusammen,

folgende kleine Geschichte habe ich. Ich arbeite zur Zeit an einer kleinen "Seite" mit u.a. Datenbank aber das soll eigentlich nicht das Thema sein :)

Wenn ich einen Suchbegriff im Formular eingebe, auf Absenden klicke kommt die Eregebnisseite auf welcher steht "Kein Eintrag zu deiner Suche nach süd gefunden"

Kennt jemand Abhilfe? Der Charset steht schon mit voller Absicht auf "iso-8859-15, utf-8"

Gruß

Dennis
 
Hi,

bei zwei unterschiedlichen Charsets stimmt wohl die Zeichenkodierung in der DB und der Ausgabe des Webservers an die Dokumente nicht überein, mit einer einheitlichen UTF-8-Zeichenkodierung sollte es eigentlich keine derartigen Ausgaben geben.

Ansonsten schau dir mal [phpf]htmlspecialchars[/phpf], [phpf]htmlentities[/phpf] oder [phpf]utf8_encode[/phpf], [phpf]utf8_decode[/phpf] an.

mfg Maik
 
Genau das ist das kuriose.

Ich hab die Datenbank mit diversen Informationen gefüllt. Wenn ich den charset auf den Seiten auch auf den Ergebnisseiten auf utf-8 lasse, werden die Ergebnisse in denen Umlauten vorkommen falsch dargestellt. Mit dem was ich eingegeben habe, werden die Ergebnisse richtig dargestellt.

Dann muss ich noch zusehen das ich die Umlaute im HTML Code nicht als ä usw schreibe. Das ist ein totales durcheinander.

Wenn ich es als utf-8 lasse werden die Infos aus der DB nicht richtig ausgegeben. In der DB MUSS ich alles als latin1_general_ci machen sonst stehen die Umlaute in der DB falsch...
 
Hi,

ich verstehe nicht ganz. Wenn die DB auf ISO-Latin steht, musst Du auch Latin ausgeben, es sei denn Du kodierst vor der Ausgabe um (aber wozu...). Zeig doch mal ein bischen Code.

LG
 
Viel Code hab ich diesbezüglich ja nicht...

Hab nochmal alles durchgeschaut. Alle Daten in der DB sind als latin1_general_ci drin. Alles andere funktioniert nicht.

Alle Seiten, egal ob Sie auf die Datenbank zugreifen oder nicht haben grundsätzlich utf-8

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Mit dieser Variante wird alles ohne Probleme dargestellt, es sei denn ich mach ne DB Abfrage dann werden die Ergebnisse falsch dargestellt, welche in der DB aber richtig sind z.B. Düsseldorf.

Wenn ich nun den charset ändere, werden die Ergebnisse richtig dargestellt aber nicht mehr der reine Text auf der Seite!

Gruß
 
Was du dir schon mal merken kannst, ist, dass du am besten durchgehend (von der Eingabe über die Verarbeitung bis zur Ausgabe) mit nur einer Kodierung arbeiten solltest. Hier empfehle ich dir UTF-8, da mit dieser sämtliche Unicode-Zeichen kodiert werden können.
Dabei gibt es allerdings ein paar Fallstricke. Etwa dass die Kodierung im HTTP-Header angegeben werden sollte und nicht erst im Dokument selbst.
 
Ok das ist mir eigentlich klar, nur hab ich halt das Problem wenn ich in der DB ut-8 nutzen sollte passiert das was ich beschrieben hatte sprich Entweder stehen die Infos in der DB falsch drin bzw. werden abgeschnitten.
 
Aus meinen beiden Beiträgen und Gumbos Tipps hast du eigentlich schon das Handwerkszeug beisammen.

mfg Maik
 
Status
Nicht offen für weitere Antworten.

Neue Beiträge

Zurück