Ankündigung

Einklappen
Keine Ankündigung bisher.

mysql volltextsuche schlägt mit Umlauten fehl

Einklappen

Neue Werbung 2019

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

  • mysql volltextsuche schlägt mit Umlauten fehl

    ...

  • #2
    Zitat von coxtor Beitrag anzeigen
    Ich bin mir leider nicht sicher wie es in meiner Datenbank aussieht (collation ? oder so), ich bin bei 1und1 und habe noch keine Möglichkeit gefunden irgendwie darauf zuzugreifen.
    Kannst du doch in phpMyAdmin nachschauen - sowohl für die Tabelle, als auch für die einzelnen Spalten.

    Und die Zeichenkodierung der Datenbankverbindung ist auch wichtig.

    ich verwende ISO-8859-1 in meinem HTML Header.
    Na das ist der Datenbank aber eher egal (so lange keine falsch kodierten Daten bereits im Script vorliegen).

    Hast du denn die Query, so wie sie ist, erst mal über phpMyAdmin getestet?

    Kommentar


    • #3
      ...

      Kommentar


      • #4
        Zitat von coxtor Beitrag anzeigen
        Wie blöd von mir, nein hatte ich noch nicht. Und siehe da, in phpMyAdmin funktioniert die Anfrage problemlos!

        Hilft diese Angabe denn schon eine Lösung zu finden ?
        Sicher - du hast an irgendeiner Stelle ein Problem mit der Zeichenkodierung.

        Da darüber allerdings schon zig Diskussionen geführt worden sind, an welchen Stellen man die alles zu beachten hat, habe ich jetzt keine große Lust, das hier schon wieder durch zu exerzieren - also bitte erst mal selber Informationen dazu suchen und anwenden.

        Kommentar


        • #5
          ...

          Kommentar


          • #6
            Zitat von coxtor Beitrag anzeigen
            PHP-Code:
            SELECT FROM crCard WHERE MATCH (`tag`) AGAINST ('+B%C3%A4ume' IN BOOLEAN MODE 
            Das ist ein in UTF-8 kodiertes ä.

            JavaScript arbeitet intern immer mit Unicode.

            Wenn du dein komplettes Projekt auf UTF-8 umstellen würdest, hättest du auch in Zukunft am wenigstens Probleme zu erwarten.

            Wenn du das nicht willst, solltest du dir im PHP-Script mit utf8_decode behelfen können. Das ist aber natürlich nur ein Notnagel. Sonderzeichen, die in ISO-8859-1 nicht abbildbar sind, gehen dir damit verloren.

            Kommentar


            • #7
              Zitat von coxtor Beitrag anzeigen
              Ich habe schon einige Diskussionen über utf8 und ISO-8859-1 gelesen und die Meinungen, was verwendet werden sollte unterscheiden sich stark, ich verwende ISO-8859-1 in meinem HTML Header.
              Ich bin mir leider nicht sicher wie es in meiner Datenbank aussieht (collation ? oder so), ich bin bei 1und1 und habe noch keine Möglichkeit gefunden irgendwie darauf zuzugreifen.
              Das musst du erstmal feststellen:
              - Welches Encoding verwendet die Webseite (was schickt sie dir?)
              - Welches Encoding verwendet das PHP Script (wie erwartest du Daten? Welches Encoding gilt in deinem Script?)
              - Welches Encoding verwendet der Datenbanktreiber (ClientLib, mit welchem Encoding transportiert sie Daten? Darauf hast du Einfluss)
              - Welches Encoding verwendet die Datenbank (-tabelle, in welchem Encoding werden die Daten schlussendlich abgelegt?)

              Im Idealfall sprechen alle denselben Dialekt, z.B. utf8
              Falls nicht, müssen an entsprechenden Stellen Konvertierungen vorgenommen werden. Die entsprechenden Stellen nennt man dann den Kontextwechsel (google), grob gesagt die Übergabe von Daten an eine neue "Umgebung".

              Wie bereits erwähnt, wurde das Thema "hinreichend behandelt"

              Kommentar

              Lädt...
              X