Frage von Manu19964, 59

MYSQL Umlaute?

Hallo liebe Community,

ich habe da ein kleines Problem bei der Programmierung einer Website. Ich habe Daten in einer Datenbank abgelegt und möchte diese nun anzeigen lassen. Funktioniert auch alles schön und gut nur ist das Problem, dass die Datensätze die aus der Datenbank geholt werden die Umlaute wie ä,ö,ü, usw. enthalten nicht erkannt werden also dass an Stelle des Umlautes dann irgend ein Objekt zu sehen ist. Wie schaffe ich es die Umlaute anzeigen zu lassen?

Hinweis: Im verknüpften HTML Dokument sind auch Umlaute vorhanden und diese werden mir auch so angezeigt. Es geht lediglich um die Daten die aus der MySQL Datenbank kommen.

Antwort
von arachno1999, 29

Bei solchen Umlautproblemen sind ziemlich viele Komponenten beteiligt.

Ein paar sind MySQL-Server Konfiguration, Encoding der Tabelle, Encoding der Verbindung, Encoding der Website, Einstellungen der Programmiersprache, Encoding der Programmdatei und wahrscheinlich noch ein paar Dinge mehr.

Wenn ansonsten mit den Umlauten, außerhalb der MySQL-Daten, alles okay ist, könnte es helfen, vor dem Durchführen der MySQL-Query den Befehl

mysql_query("set names 'utf8'");

auszuführen (hier am Beispiel PHP).

Antwort
von ostfriesenjung, 26

Das ist ein allseits bekannte UTF-8 Problem.
Wie die Vorredner schon sagten ist dies ein Encoding Problem.
Prüfe folgendes:
1. In welcher Form stehend die Umlaute tatsächlich in der Datenbank.
(wie codiert, schau mal rein mit phpMyAdmin o.ä.)
2. Die anzeigende Webseite muss selbst UTF-8 codiert gespeichert sein und der Charset (Meta Einstellung) muss auch UTF-8 sein

Womit erstellst Du die Webseiten, also welcher Editor?
Leider kann nicht jeder Editor im UTF-8 Format speichern.

Eine URL zur Seite währe schön, dann kann man gleich mehr dazu sagen.

Kommentar von Manu19964 ,

Die Umlaute sind richtig in der Datenbank gespeichert nur wenn ich die Daten mit PHP in eine Website miteinbauen will werden diese nicht richtig 'übersetzt'

Kommentar von RakonDark ,

wie schon beschrieben , erstmal alles überprüfen , überall muss UTF-8 stehen einzig alleine die Datenbank muss nicht in UTF8 sein , solange die werte in UTF8 geschrieben sind, werden sie auch wieder als UTF8 gelesen , meinte steht immer auf LatIn Swedish . wichtig ist also das sie in UTF8 geschriben sind, was du mit PHPMyAdmin leider gar nicht prüfen kannst, den im zweifel zeigt er dir Latin an . also mach ein kleines php speicher das als UTF-8 ab , schreib da hardcodiert die sonderzeichen und prüfe alle angaben bis du zum erfolg kommst. Gut sind halt sonderzeichen die nicht im latin vorkommen . dann siehst du auch obs in der DB richtig steht .

Kommentar von maximilianus7 ,

was du in der datenbank einstellst, hat ist nicht das encoding, sondern die collation (verklebung). das beinflusst die sortierung (ORDER BY). die schweden sortieren ihre umlaute, anders ein als die deutschen (die haben sogar 2: nach duden und postalisch, wird aber von mysql  nicht unterschieden)

Antwort
von chokdee, 34

Zwei Fragen :

In welchem Encoding läuft die Tabelle?

Encodest du die Zeichen HTML-Konform?

Antwort
von happyfish2, 34

Da nutzt du wohl unterschiedliche Charsets. Am besten auf eins festlegen für alles(!), z. B. UTF8

Keine passende Antwort gefunden?

Fragen Sie die Community