Sonderzeichen in MySQL gehen irgendwie nicht :(

Diskutiere mit über: Sonderzeichen in MySQL gehen irgendwie nicht :( im Datenbanksysteme für das Web Forum

  1. asylum

    asylum Thread Starter MacUser Mitglied

    Beiträge:
    747
    Zustimmungen:
    1
    Registriert seit:
    10.06.2005
    'n abend!
    Ich habe folgendes Problem aus dem ich nicht so wirklich rauskomme :(

    Und zwar handelt es sich darum, dass ueber ein Forumlar Daten in die Datebank geschrieben werden. Wenn ich dann zb ä ö usw in die DB schreiben lasse, dann werden diese auch angezeigt, jedoch wenn ich dann den Eintrag aus der DB lade, dann sind anstatt der Sonderzeichen (ist so ziemlich alles, also Euro; " " oder ' ') so ein Sonderzeichen gedoens...

    Woran kann das liegen?

    Gruss

    asylum

    ps: die tables sind in Latin1!
     
  2. timbajr

    timbajr MacUser Mitglied

    Beiträge:
    574
    Zustimmungen:
    26
    Registriert seit:
    22.04.2005
    Was ist Sonderzeichen Gedöns ??

    Ist das dann im HTML oder sind die entsprechend schon in der DB so hinterlegt ?
     
  3. Rajmund

    Rajmund MacUser Mitglied

    Beiträge:
    539
    Zustimmungen:
    58
    Registriert seit:
    15.04.2006
    :p Schick doch mal ein Beispiel. Davon hängt die Lösung ab.
    Zum Beispiel kannst Du im HTML-Dokument vorneweg noch ein META-Tag mit Angabe der Zeichenkodierung schicken.
    Mit der Funktion htmlspecialchars kann man alle Zeichen in eine HTML-Schreibweise umkodieren.
    Nicht zuletzt machen zwei Bytes am Anfang einer Datei gelegentlich gerne mal Problemchen, wenn es sich um UTF-kodierte Dateien handelt. Diese Bytes sollen genau dies dem Editor anzeigen. Der Editor sagt dann "aha", und zeigt dem User diese Bytes natürlich nicht unbedingt an.
     
  4. 2nd

    2nd MacUser Mitglied

    Beiträge:
    8.902
    Zustimmungen:
    242
    Registriert seit:
    25.07.2004
  5. Rajmund

    Rajmund MacUser Mitglied

    Beiträge:
    539
    Zustimmungen:
    58
    Registriert seit:
    15.04.2006
    Das ist aber nur dann sinnvoll, wenn mit den Daten nicht weiter irgendwie gearbeitet werden soll. Wenn es ans Suchen und Sortieren in den Datenbankbeständen geht, stören die HTML-Schreibweisen. Für einfachere Sachen mag es noch gehen, wenn man auch die Suchanfragen entsprechend vorher umwandelt, aber elegant finde ich das nicht.
     
  6. asylum

    asylum Thread Starter MacUser Mitglied

    Beiträge:
    747
    Zustimmungen:
    1
    Registriert seit:
    10.06.2005
    zb: möchte oder für
     
  7. Rajmund

    Rajmund MacUser Mitglied

    Beiträge:
    539
    Zustimmungen:
    58
    Registriert seit:
    15.04.2006
    Aha. Guck mal nach, mit welcher Zeichenkodierung dein Editor dein PHP-Skript gespeichert hat.
     
  8. asylum

    asylum Thread Starter MacUser Mitglied

    Beiträge:
    747
    Zustimmungen:
    1
    Registriert seit:
    10.06.2005
    wie mach ich das? bzw warum hat das was mit den skript zu tun? ich mache ja ne speicherung in die db per textfeld und lese dann aus der db raus in ein textfeld, dabei verhaut der eben die umlaute
     
  9. Nik13

    Nik13 MacUser Mitglied

    Beiträge:
    2.001
    Zustimmungen:
    163
    Registriert seit:
    21.07.2006
    Verwende beim Schreiben in die Datenbank einen string-/preq-replace und ersetze mit diesem alle ä, ö, ü ´s e.t.c. durch ä ö ....

    Ich verwende die im Anhang enthaltene Funktion ;)
     
    Zuletzt bearbeitet: 14.10.2006
  10. Rajmund

    Rajmund MacUser Mitglied

    Beiträge:
    539
    Zustimmungen:
    58
    Registriert seit:
    15.04.2006
    Wenn die Zeichenkodierung Unicode ist, dann ist es nicht mehr so, daß 1 Zeichen gleich 1 Byte ist. Sondern je nach Variante werden 2 Byte für 1 Zeichen oder mehr benötigt. Wenn Du mit deinem Texteditor eine ganz einfache Textdatei anlegst und eben in Unicode-Kodierung speicherst, dann muß das irgendwie kenntlich gemacht werden. Woher soll der Editor denn beim erneuten Öffnen der Datei wissen, daß hier Unicode-Zeichen drin sind und ggf. 2 Bytes zu 1 Zeichen zusammenzufügen sind? Kenntlich gemacht wird das durch zwei Bytes am Anfang der Datei. Wenn der Editor die sieht, weiß er, daß es sich um Unicode handelt. Diese Bytes zeigt er aber natürlich nicht an, weil sie ja kein eigentlicher Inhalt sind. Du siehst sie nur, wenn Du ihm sagst, daß es eben nicht Unicode ist. Die Kodierung legt man über einen Menüpunkt oder innerhalb des Speicherndialogs fest. Ich weiß nicht, welchen Editor du nimmst.
    Im Prinzip ist die Kodierung eigentlich egal. Aber bei meinen Skripten schicke ich immer noch eine META-Tag-Angabe über die verwendete Kodierung z.B.
    Code:
    <meta http-equiv="type" content="text/html; charset=utf-8">
    mit. Denn der Browser muß auch wissen, wie das ankommende Dokument kodiert ist und er schickt die eingegebenen Daten in genau dieser Kodierung dann auch zurück.
    Interessanterweise müssen dann aber wiederum diese Bytes, an denen der Editor das erkennt, nicht mehr mitgeschickt werden. Diese Erkenntnis ist wichtig, wenn man mit PHP selbst noch Header-Infos mitschicken will. Das geht nämlich (logischerweise) nicht, wenn diese Bytes ganz am Anfang stehen.
     
Die Seite wird geladen...
Ähnliche Themen - Sonderzeichen MySQL gehen Forum Datum
Mysql - Duplicates abfangen, mit php oder mit unique keys? Datenbanksysteme für das Web 08.03.2016
mysql abfrage optimieren Datenbanksysteme für das Web 26.03.2014
php - mysql_error != mysqli_error - mysql meldet Fehler, mysqli nicht Datenbanksysteme für das Web 05.07.2013
Fragen & Hilfe zu Projekt mit php & mySQL Integration Datenbanksysteme für das Web 01.07.2013
Fragen zu MySql Datenbanksysteme für das Web 04.03.2013

Diese Seite empfehlen

Benutzerdefinierte Suche