Ankündigung

Einklappen
Keine Ankündigung bisher.

Sonderzeichen in Datenbank schreiben

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Sonderzeichen in Datenbank schreiben

    Hallo zusammen,

    ich habe meine Webanwendung auf verschiedene Sprachen erweitert und scheitere gerade daran, rumänische Schriftzeichen in die Datenbank zu schreiben.

    Die Verbindung zur Datenbank ist in utf8 aufgebaut.
    PHP-Code:
    mysqli_query($link"SET NAMES 'utf8' COLLATE 'utf8_unicode_ci'");
    mysqli_query($link"SET CHARACTER SET utf8");
    mysqli_query($link"SET SESSION character_set_results = 'UTF8'"); 
    Wenn ich mir den query ausgeben lasse, werden die Sonderzeichen richtig dargestellt
    PHP-Code:
    mysqli_query($link"UPDATE phrases_lg SET phrase='"mysqli_real_escape_string($link$phrase)."' WHERE id=".$id." AND lg=".$_SESSION["lg"]); 
    Die Spalte "phrase" hat die Kollation
    utf8_unicode_ci
    Es scheint irgendwo am letzten Schritt, dem Schreiben in die Datenbank, zu scheitern. Gebe ich die Ausgabe des query direkt in phpmyadmin ein, funktioniert es einwandfrei.

    Hat jemand eine Idee, was ich noch machen kann? Danke!

  • #2
    Zeige mal deinen Datenbank-Dump, nur Struktur reicht.

    Set names ist überflüssig, nimm das raus.

    Kommentar


    • #3
      Die wichtigsten zwei Punkte:

      1. Zeichenkodierung im HTTP-Header
      2. Zeichenkodierung der Datenbankverbindung

      Nummer 1 setzt man mittels header() im Content-Type:
      PHP-Code:
      header('Content-Type: text/html; charset=utf-8); 
      Nummer 2 setzt man mit mittels mysqli_set_charset():
      PHP-Code:
      mysqli_set_charset($link'utf8'); 
      SET NAMES, usw. ist Quatsch. Bitte nicht verwenden.

      Kommentar


      • #4
        Zitat von hellbringer Beitrag anzeigen
        Die wichtigsten zwei Punkte:

        1. Zeichenkodierung im HTTP-Header
        2. Zeichenkodierung der Datenbankverbindung

        Nummer 1 setzt man mittels header() im Content-Type:
        PHP-Code:
        header('Content-Type: text/html; charset=utf-8); 
        Nummer 2 setzt man mit mittels mysqli_set_charset():
        PHP-Code:
        mysqli_set_charset($link'utf8'); 
        SET NAMES, usw. ist Quatsch. Bitte nicht verwenden.

        Nummer 1 hatte ich schon, nur vergessen zu posten.

        Nummer 2 war die Lösung.

        Vielen Dank für Eure Hilfe!

        Kommentar

        Lädt...
        X