Umlaute

Sasser

Erfahrenes Mitglied
Guten Morgen!

Ich habe einen kleinen Chat auf meiner Webseite. Der Username wird mit Umlauten korrekt in die DB eingeschrieben, nur der Text nicht! Ein Ö wird zu ö?

Die Mitteilungen hole ich aus einer Datenbank mit folgenden Typen:

user = varchar(15) - utf8_general_ci
message = text - utf8_general_ci

Am Anfrang des Dokumentes habe ich folgenden Typ geklariert:

PHP:
header ( 'Content-type: text/html; charset=ISO-8859-1' );

Was mache ich falsch?
 
Zuletzt bearbeitet:
Wenn deine Daten in der Datenbank als UTF-8 gespeichert sind, sollte dein Dokument auch als UTF-8 ausgeliefert werden (und nicht als ISO-8859-1).
 
Der Username ist korrekt als z.B. Öname in der DB zu finden, nur bei der Mitteilung ersetzt er die Umlaute in kryptische Zeichen (sind auch so in der DB angelegt)!

Wenn ich den o.g. Header entferne, dann zeigt er wieder die Mitteilung normal korrekt an und beim Usernamen macht er bei Umlauten einfach einen Kasten!?
 
Ich habe noch eine Frage:

Kann es vll. an dem Header liegen, welchen das Javascript benutzt um den Text abzuspeichern?

HTML:
xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
 
Das ist eher unwahrscheinlich. Welche Kodierung hat denn die Seite, von der aus das Formular abgeschickt wird? Gewöhnlich wählt nämlich der Browser die dort verwendete Kodierung, um damit auch die Formulardaten zu kodieren, falls keine explizit angegeben wurde.
 
Ich habe das Problem gefunden und gelöst.

Die Datei, welche die Daten an die DB schickt, muss den Header als UTF-8 codiert haben!

Dankeschön für eure Mühe ;)
 
Hallo Leute!

Komplettes Kommando zurück, das funktioniert immer noch nicht. Wenn ich in meiner DB einen Eintrag manuell mache, dann funktionierts und wird korrekt angezeigt.

Wenn ich es allerdings eintragen lasse, kommen solche kryptischen Umlaute bei raus!

Es liegt also definitiv an der Datei, welche den Eintrag vornimmt!

Also nochmal:

- in allen Tabellen verwende ich UTF-8
- in den Dokumenten verwende ich ISO-8859-1

Alles funktioniert, bis auf den Chat!? Kann es sein, dass es mit dem XML-Request zusammenhängt?

Das ist die JavaScript Eintragsfunktion:
HTML:
function saveData()
{
if (xmlHttp) {
    xmlHttp.open('POST', 'include/setdata.php');
    xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlHttp.send('message='+document.chat.message.value);
}
document.chat.message.value = '';
document.chat.message.focus();
}
 
Zurück