Ankündigung

Einklappen
Keine Ankündigung bisher.

Wiedergabeprobleme: Japanischer Text aus MySQL-DB

Einklappen

Neue Werbung 2019

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

  • Wiedergabeprobleme: Japanischer Text aus MySQL-DB

    Hallo,

    folgendes Problem:

    Ich habe eine MySQL-DB (4.1.12), in der deutsche und japanische Texte gespeichert sind. Die jap. Texte werden über phpMyAdmin korrekt angezeigt (=mit jap. Schriftzeichen).

    Lese ich diese Zeichen aus und binde sie in ein HTML-Dokument ein, kommt als Ergebnis nur "??" anstelle eines Zeichens.

    Beispiel Aus "日本" wird "??".

    "Eigentlich" müßte alles stimmen:
    Das DB-Feld mit dem jap. Zeichen hat die Kollation 'utf8_unicode_ci', das HTML-Dokument, in das das Zeichen eingebettet wird, hat als charset 'charset=utf-8'. Die deutschen und jap. texte liegen in der gleichen Tabelle.

    Folgendes habe ich festgestellt:
    Besagte HTML-Datei ist Teil eines Framesets, und wenn ich mir mit dem IE die Codierung zur Wiedergabezeit ansehe, ist diese auf einmal 'Westeuropäisch (Windows)'.

    Also klar, dass es dann nicht klappen kann. Erste Frage wäre also: Warum ignoriert der Browser die charset-Anweisung?

    Stelle ich dann händisch zur Wiedergabezeit auf "Unicode ( UTF-8 )" um, werden alle jap. Zeichen, die ich bereits mit Dreamweaver fest in den HTML-Code eingebettet habe, korrekt wiedergegeben, aber nicht die, die PHP dynamisch einfügt.

    Füge ich die jap. Zeichen kodiert als z.B. "日" ein, klappt es wiederum, aber ich will nicht mühselig alle jap. Zeichen in diese Notation umwandeln (weiß auch gar nicht, wie ich das bequem machen könnte).

    Wer kann mir einen Tipp geben? Ich bin für alles dankbar! Ich habe bereits alle möglichen anderen Dokument-Codierungen ausprobiert, aber nur mit UTF-8 klappt es zumindest teilweise. Andere Codierungen bringen nur Buchstabensalat...

    Gruß
    Blik

    Zusatz: Lasse ich mir die Codierung durch mb_detect_encoding() anzeigen, bekomme ich immer "ASCII" zurück!?


  • #2
    ... nach intensiver Recherche habe ich in einem weiteren PHP-Forum eine passende Antwort gefunden (dem Internet und cerebellum sei Dank):

    1.) Folgender Header muß zusätzlich in den PHP-Teil geschrieben werden:
    header("Content-Type: text/html; charset=UTF-8");

    2.) Nach @mysql_connect() muß folgende Zeile kommen:
    mysql_query("SET NAMES 'utf8'");

    3.) Die Tabelle und alle Felder (!) müssen UTF-8 kodiert sein

    Wieder mal schlauer...

    Gruß
    Blik

    Kommentar


    • #3
      DANKE!
      Deine Antwort hat mich nach Stunden-Tagen-Wochen des Suchens gerettet!!!

      Kommentar

      Lädt...
      X