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!?
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!?
Kommentar