Kyrillische und japanische Zeichen etc. werden nicht angezeigt

  • In einem meiner alten Blogs funktioniert es problemlos, in einem neu-installierten Blog hingegen nicht. Beim Abspeichern bzw. Veröffentlichen eines Beitrags verwandeln sich alle Zeichen in "?", sowohl im Front- als auch im Backend. In den Einstellungen unter Lesen -> Zeichensatz für Seiten und Feeds ist allerdings korrekt UTF-8 angegeben. Hat dazu jemand eine Lösung?

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • config.php öffnen und
    gib vor dem


    PHP
    define('DB_COLLATE', '');

    zwei //

    damit macht man diese Angabe unbrauchbar

    könnte helfen

    wenn immer noch nicht dann auch mal vor


    PHP
    define('DB_CHARSET', 'utf8');

    lg

  • Du kannst auch mal schauen, ob die Datenbank auch entsprechend eingestellt ist. Wenn die Datenbank nämlich in latin1 kodiert wird und MySQL in Version 5 vorliegt, dann wird das UTF-8 was Wordpress in die Datenbank schickt von MySQL in latin1 abgebildet und in latin1 gibt es ja keine komischen h zb., so dass ein ? gesetzt wird. Sollte das dein Problem sein, dann kannst du mal hier schauen. Damit kannst du bestehende Daten konvertieren, wobei alles mit ? logischerweise unwiederbringlich weg ist.

  • Seltsame Sache, alle meine Datenbanken sind in latin1. Monikas Tipp hat allerdings geholfen. In der wp-config.php meines Blogs, in dem die Darstellung funktioniert, fehlen die beiden erwähnten Befehle nämlich.

  • Irgendwas stimmt noch nicht. Ich habe jetzt meine Datenbank auf utf-8 umgestellt, aber zumindest einige chinesische Zeichen werden trotzdem nicht angezeigt. Im Front- und Backend erscheinen sie als Fragezeichen, während die Darstellung im Browser selbst (also z.B. in der Titelzeile und im Quelltext) korrekt ist.

    Hat jemand eine Idee, wo der Fehler liegen könnte? Habe ich womöglich in der Datenbank etwas übersehen?

  • Ich vermute, dass die ? echte ? sind. Erstelle doch mal einen Beitrag mit neuen Zeichen. Vermutlich sind di Zeichen dann korrekt.

    D.h. durch das Konvertieren nach latin1 sind utf-8 Zeichen in latin1 abgebildet worden. DIe Zeichen, die latin nicht kennt, werden als ? dargestellt, sind also weg. :(

  • Also für den Fall, dass du eine Windows PC hast, brauchts du die erweiterten Asiatischen Sprachen und die dazugehörigen Fonts.
    Das kannst du installieren über:
    Control Panel -> Regional Settings -> Language Tab -> Install Files for East Asien languages

    Deutsch etwa so (hab nur US Windows):
    Systemsteuerung -> Ländern/Spracheinstellung -> Sprache -> Installieren der Ost Asiatischen Sprachen

    Dann bekommst du eine Tonne neuer Fonts und die ? lösen sich meist auf, wenn wirklich sonst alles UTF-8 im Blog eingestellt ist.

    Sieht dann so aus, wenn man auch noch in Japanisch anmeldet:

  • attze
    So schlau war ich schon. ;-)
    Hat aber nichts genützt.

    codestyling
    Die Sprachen habe ich installiert. Aber wie gesagt: im Quelltext erscheinen die Zeichen ja korrekt. Ich habe mich übrigens geirrt: auch im Wordpress-Editor sind die Zeichen richtig dargestellt. Und zwar auch wenn ich den abgespeicherten Beitrag neu editiere! D.h. die Zeichen sind offensichtlich richtig kodiert und abgespeichert, werden von Wordpress allerdings weder in der Beitragsübersicht noch im Frontend richtig dargestellt. Jetzt ist die Frage, wo gibt es da zwischen Editor und Frontend einen Unterschied.

  • Das steht auf UTF-8. Ich habs extra auch noch mal bestätigt und neu abgespeichert.

    Mal so nebenbei... ich hasse charsets :D

    Hast du evtl schon gemacht, aber ich hätte noch mal einen dump gezogen und per Hand nach latin etc. gesucht. Irgendwo scheint ja nicht UTF-8 verwendet zu werden.

    Nochmal der Reihe nach:

    DB komplett auf utf?
    WP auf utf?
    Browser auch utf?

    Nur damit es auch jeder weiß... ich hasse charsets :P


  • Hast du evtl schon gemacht, aber ich hätte noch mal einen dump gezogen und per Hand nach latin etc. gesucht.

    Nichts zu finden.

    Zitat


    DB komplett auf utf?

    Alles was vorher auf latin1_swedish_ci war steht nun auf utf-8_unicode_ci. Kann es sein, dass ein bestimmter Wert ohne Kollation-Spezifizierung, also eine leere Angabe, standardmäßig auf latin1 läuft? Müsste dann ja in der wp_posts-Tabelle sein, oder?

    Zitat


    WP auf utf?

    Lesen und Feed steht auf utf-8. Mehr kann man doch nicht einstellen, oder?

    Zitat


    Browser auch utf?

    Ja, mit dem Browser-Zeichensatz habe ich auch schon erfolglos experimentiert. Da die Zeichen im Quelltext ja auch angezeigt werden, muss es zwangsläufig an WP liegen.


  • Alles was vorher auf latin1_swedish_ci war steht nun auf utf-8_unicode_ci. Kann es sein, dass ein bestimmter Wert ohne Kollation-Spezifizierung, also eine leere Angabe, standardmäßig auf latin1 läuft? Müsste dann ja in der wp_posts-Tabelle sein, oder?

    Das hängt dann von der Kollation der Gesamten DB ab. Wenn eine DB angelegt wird, gibt man ebenfalls die default collation an und die wird benutzt, wenn an den Tabellen nix steht.
    Wenn du das samt Inhalt zwangsungestellt hast, dann ist der Japanische Inhalt jetzt Schrott und tatsächlich reale ? geworden. Dazu braucht man normalerweiser eine Konvertierung von ISO ... nach UTF8 wenn das in ISO schon drin stand.


    Ja, mit dem Browser-Zeichensatz habe ich auch schon erfolglos experimentiert. Da die Zeichen im Quelltext ja auch angezeigt werden, muss es zwangsläufig an WP liegen.

    ... Und wenn ich nicht hinsehe, ist der Mond nicht da. Also muss er dann weg sein! ...

    Wenn es bei hunderten/tausenden/millionen anderen WP Nutzern geht, wie kommst du dann darauf, das es an WP liegen muss ? Es gibt bestimmt noch Ursachen, über die wir noch nicht nachgedacht haben. Ich teste mal ein wenig rum und melde mich, wenn ich noch was gefunden hab.

    Ansonsten läuft bei mir WP in über 30 Sprachen sowohl Frontend als auch Backend, wenn ich das will. Momentan nur in 2 aber die anderen (inklusive RTL Sprachen wie Hebräisch oder Arabisch) gehen trotzdem und zwar alle in der gleichen Install und gleichzeitig.

  • Also ich hab es nochmal mit meiner 2.5.1 verifiziert und ich kann Russisch, Chinesisch, Japanisch und Deutsch mischen wie ich lustig bin.
    Stellt sich mir die Frage, wie du das eingibst und warum es ausgerechnet bei dir nicht geht. Ein Link zur Page, wo man sich das Resultat mal ansehen kann, könnte helfen.

    Hier ein Shot (steht zwar LiveWriter dran, ist aber mit TinyMCE eingegeben worden):

  • Kyrillisch und Japanisch scheint kein Problem zu sein. Bei der Fülle an japanischen Zeichen habe ich das natürlich noch nicht erschöpfend ausprobiert. ;)
    Es geht bisher nur um einige chinesische Zeichen, die sich nicht darstellen lassen. Beispiel:

    Aus:
    他们说忘了摇滚有问题

    wird:
    ä��ä��说忘ä��摇滚有问题

    Probier doch mal, ob diese Reihe bei dir funktioniert.

  • Kyrillisch und Japanisch scheint kein Problem zu sein. Bei der Fülle an japanischen Zeichen habe ich das natürlich noch nicht erschöpfend ausprobiert. ;)
    Es geht bisher nur um einige chinesische Zeichen, die sich nicht darstellen lassen. Beispiel:

    Aus:
    他们说忘了摇滚有问题

    wird:
    ä��ä��说忘ä��摇滚有问题

    Probier doch mal, ob diese Reihe bei dir funktioniert.

    Hab es beim mir eben eingegeben und es geht perfekt. Screenshot kann ich machen und live kann ich's auch stellen bei Bedarf.
    Sieht mir danach aus, als hättest du doch nicht alle Fonts gemäß Ländereinstellungen installiert. Wenn alles UFT-8 ist dann sollte das auch so wie hier im Forum aussehen (1. Zeile).
    Ich benutzt allerdings Windows XP64 und FireFox,IE7. Opera und Safari kann ich erst abends testen :)

  • Die Fonts können nicht das Problem sein, da es ja prinzipiell richtig angezeigt wird, also hier im Forum und im Quelltext des Blogs zum Beispiel, und überall in meinem System auch (Editor, Textverarbeitung etc.).

    In der Datenbank steht übrigens nur Kauderwelsch drin. Ich hab mal versucht, den Text direkt in die Datenbank einzufügen. Dann stehen die Zeichen zwar korrekt in der Datenbank-Tabelle, im Blog kommen aber nur noch Fragezeichen an. Da ist also irgendwo der Wurm drin in der Verbindung Datenbank <=> Blog.

    Ist mir jetzt langsam aber auch egal. Ich werde vermutlich eh nicht viele chinesische Zeichen einzugeben haben. Allerdings wäre eine Lösung generell nicht schlecht gewesen.

    Jedenfalls danke für deine Ideen.

  • Hmm, hab noch was gefunden, als ich den Thread nochmal gelesen hab.
    Meine Testdatenbank hat die posts Tabelle so (eigentlich alle von WordPress):

    Code
    wp_posts       MyISAM      [B]utf8_general_ci[/B]      36,1 KB      44 Bytes

    die DB selbst ist so eingestellt:

    Code
    MySQL-Zeichensatz: UTF-8 Unicode (utf8)
    Zeichensatz / Kollation der MySQL-Verbindung: utf8_unicode_ci

    und in der wp-config.php steht:

    PHP
    define('DB_CHARSET', 'utf8');
    define('DB_COLLATE', '');

    Oben hattest du geschrieben, dass du uft8_unicode_ci benutzt. Evtl. macht dies den Unterschied schon aus.

    Und einen sehr schönen (wenn auch englischen) Einsteigspunkt in die Asiatische Character Set Behandlung mit ihren zig verschiedenen Standardisierungen kann ich hier empfehlen: [chinese mac] Character Sets
    (nicht von mac stören lassen, ist umfassender)

    Und hier aus der MySQL Beschreibung: MySQL :: MySQL 5.1 Referenzhandbuch :: 10.9.1 Unicode-Zeichensätze

    Zitat


    Zurzeit bietet die Sortierfolge utf8_unicode_ci nur teilweise Unterstützung für den UCA. Einige Zeichen werden noch nicht unterstützt. Gleiches gilt für diakritische Zeichen. Dies betrifft in erster Linie das Vietnamesische und einige Minderheitensprachen in Russland wie etwa das Udmurtische, das Tatarische, das Baschkirische und Mari.

    Im Handbuch (siehe Link) wird auch der Unterschied der beiden Collations erklärt.

    Wollte nur noch mal einen letzten Versuch starten ...

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!