• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

PHP und Ausgabe von Umlauten

Breyton

Neues Mitglied
Hallo,


ist bestimmt schon einmal besprochen worden, aber ich frag mal trotzdem.
Es geht um folgendes:

Ich habe ein Konzept für eine Website erstellt. Läuft auch alles wunderbar!
In Kontaktbereich (kontakt.html) befinden sich 4 Textboxen, die Pflichtfelder sind! Wenn alles richtig ausgefüllt wurde, dann öffnet sich die Danksagung (kontakt2.html). Wenn aber zum Beispiel der Name nicht eingeben wurde, dann öffnet sich bei mir die fehler.html mit folgenden Text: Sie haben keinen Namen eingegeben. Gehen Sie bitte zurück und geben Sie ihren Namen ein. Das Problem sind die Umlaute. In meinen html - Seiten habe ich folgenden Code eingefügt
HTML:
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
Wie kann ich das mit den php - Seiten machen? Wenn ich den Code in die php eingebe dann zeigt er mir zwar die Umlaute richtig an aber bei richtig ausgefüllten Textbogen geht er nicht zur Danksagung (kontakt2.html) Wo, falls es einen Code gibt, muss ich diesen einfügen?


Gruß breyton
 
Werbung:
HTML-Entities dafür zu verwenden ist nicht sinnvoll. Zeichensatzprobleme können durch viele Dinge verursacht werden. Was mich aber zunächst wundert: wieso haben deine php-Dateien die html-Endung?

Und mögliche Ursachen für Zeichensatzprobleme:
- die Datei ist im falschen Zeichensatz gespeichert
- der Server gibt einen anderen Zeichensatz zurück als Du verwendest
- du hast im header() der php-Datei einen anderen Zeichensatz angegeben als Du verwendest
- die angezeigten Daten stammen aus einer Datenbank mit einem anderen Zeichensatz
etc.pp.

Zeig mal einen Link zur Seite. Dann könnte man prüfen, was Du für Zeichensätze verwendest und welche laut Server/Header verwendet werden. Denn dort liegt "der Hase im Pfeffer".
 
Werbung:
Hallo, ich schreibe jetzt einfach mal hier rein.

Ich bin heute mit meinen Daten auf einen neuen Server umgezogen. Dort habe ich unter Operation und Kollation utf8_unicode_si ausgewählt.

Außerdem verwende ich folgendes in dem header-Teil auf meiner Seite:

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

Jedoch werden alle meine Umlaute die aus der Datenbank kommen mit einem ? angezeigt. Wenn ich eine Seite öffne wo ich bsp. &uuml; eingegeben habe, dann wird das richtig angezeigt.

In den einzelnen Tabellen in der Datenbank selber habe ich auch utf8_unicode_si ausgewählt (zur Sicherheit).

Ich hoffe mir kann jemand einen guten Rat geben :).

EDIT: mit <meta http-equiv='Content-Type' content='text/html; charset=utf8_unicode_ci' /> geht es :)
 
Zuletzt bearbeitet:
Der Meta-Tag bewirkt gar nichts, wenn der Server selbst im Header einen Zeichensatz mitliefert. Ob und welcher das ist, kannst Du z.B. im Firefox bei den Seiteneigenschaften herausfinden.

Wenn Du Daten aus einer utf8-Datenbank ausliest, musst Du die Datenbankverbindung ebenfalls utf-8-"formatieren". Wenn es eine MySQL-Datenbank ist dann schau dich mal nach SET NAMES collation um.
 
Werbung:
Zurück
Oben