Kyrillische Buchstaben in Template-Dateien

  • Hallo,

    ich habe WP als CMS für eine 2-sprachige Website genutzt. Mit charset=UTF-8 klappt auch die Darstellung der russischen Buchstaben in den Beiträgen bzw. Seiten.

    Auch header.php bzw. der Kopfbereich wird richtig dargestellt.

    Alle anderen php-Dateien mit kyrillischen Buchstaben des Templates führen zu Problemen in der Darstellung.

    Wie lässt sich das Problem lösen?

    Susanne

    • 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

  • Du musst die anderen PHP-Dateien, die Non-ASCII-Zeichen enthalten (in deinem Fall also kyrillische Buchstaben - für deutsche Umlaute gilt aber im Prinzip das gleiche), ebenfalls in UTF8-Codierung abspeichern. In der Regel bietet dir dein Editor eine Option dazu.

  • Oder einen Filter per Plugin dazwischen schalten, der die Ausgabe puffert und in den entsprechenden Zeichencode wandelt (utf_encode()), bevor sie endgültig ausgegeben wird.

    wpseek.com - Die WordPress-Code-Suchmaschine

  • Alphawolf: Also da find ich meinen Ansatz deutlich attraktiver... (okay, wahre Schönheit kommt immer von innen ;-))

    Aber die paar Template-Dateien, die Non-ASCII-Zeichen enthalten als UTF8 abzuspeichern ist meiner Meinung nach schneller und einfacher erledigt, als ein Plugin mit Output Buffering zu schreiben. Und performanter dürfte es auch sein...

  • Sag's mir doch direkt ins Gesicht wenn du mich nicht magst, und nutze dafür nicht den Code zum Umschreiben.. :cry: :p

    Das Plugin hätte aber vllt. 5 Zeilen oder so

    PHP
    //am Anfang
    ob_start();
    
    
    //am Ende
    $content = ob_get_clean();
    $content = utf8_encode($content);
    echo $content;


    Nur Pseudocode-mäßig.. und testen müsste man es auch, aber dann hätte man eine out-of-the-box Lösung für alle Dateien, die da noch hinzukommen mögen..

    wpseek.com - Die WordPress-Code-Suchmaschine

    Einmal editiert, zuletzt von Alphawolf (11. Oktober 2007 um 15:17)

  • Mmmh, das sagt das PHP-Manual dazu:

    Zitat von PHP Manual

    utf8_encode — Encodes an ISO-8859-1 string to UTF-8

    Für deutsche Umlaute könnte das funktionieren. Ich kann mir aber irgendwie nicht vorstellen, dass kyrillische Buchstaben in ISO-8859-1 codiert sind (müsste ISO-8859-5 sein, IMHO). Also muss da schon iconv() her - was aber voraussetzt, dass du weißt, welche Zeichenkodierung ursprünglich vorlag.

    Also ich bleib dabei - alles als UTF8 abspeichern und ausliefern ist die beste Möglichkeit. ;-)
    Schon weil es immer mies ist, an den Symptomen herumzudoktern, statt die Ursache zu beheben.

    [SIZE="1"]PS: Keine Angst ich hab dich trotzdem gern. Spätestens wieder beim nächsten Bier... ;-)[/SIZE]

  • Hallo, Ihr zwei,

    darf ich mich noch mal einmischen ;-)

    Du musst die anderen PHP-Dateien, die Non-ASCII-Zeichen enthalten (in deinem Fall also kyrillische Buchstaben - für deutsche Umlaute gilt aber im Prinzip das gleiche), ebenfalls in UTF8-Codierung abspeichern. In der Regel bietet dir dein Editor eine Option dazu.

    Wie speichere ich die PHP-Datei in einem Editor in UTF8-Codierung ab?
    Wo finden ich die erforderlichen Optionen / Einstellungen im Editor?

  • Kommt auf deinen Editor an. Welchen hast du denn?

    Bei vielen Editoren hast du im "Speichern unter.."-Dialog eine Dropdown-Box mit dem Titel "Encoding" oder so, da kannst du "ANSI", "Unicode", "UTF-8" usw. auswählen. Andere Editoren haben in der Menüzeile ein Menü "Format", wo man das einstellen kann.

    Eventuell hilft dir auch das Hilfesystem deines Editors weiter...

  • Textpad nutze ich selbst, da geht es recht bequem... "Datei speichern unter...", dann kannst du unten die Codierung wie oben beschrieben auswählen. Wähle dort "UTF-8", überschreibe die Datei und es sollte alles korrekt angezeigt werden.

  • footer.php in Textpad geöffnet.
    Gespeichert unter mit UTF-8 Einstellung. Nur kann die Textpasssage trotzdem nicht eingefügt und abgespeichert werden.

    Kommt nur sowas raus.

    :confused:

  • ich weiß nicht, warum es im Textpad nicht geklappt hat. Sicher eine fehlende Einstellung.

    Im Dreamweaver habe ich es hinbekommen über Modifizieren/Seiteneigenschaften/Titel/Kodierung -dort UFT-8 ausgewählt.

    Danke und schöne Grüße! :-D

Jetzt mitmachen!

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