Ergebnis 1 bis 5 von 5

Thema: Einige zentrale Backendtemplates werden mit Windows-1252-Zeichensatz angezeigt

  1. #1
    Contao-Nutzer
    Registriert seit
    10.10.2013.
    Beiträge
    43

    Standard Einige zentrale Backendtemplates werden mit Windows-1252-Zeichensatz angezeigt

    Irgendwie verstehe ich das nicht: Bei mir werden z.B. der Wartungsmodus oder der Contao-Check mit dem Windows-1252-Zeichensatz angezeigt, obwohl im Template (z.B. be_unavailable.html5) und im Quelltext im Browser ein
    Code:
    <!DOCTYPE html>
    <html>
    <head>
    
      <meta charset="utf-8"> 
    ...
    steht. Ich habe das mit verschiedenen Browsern und auf verschiedenen Rechnern ausprobiert, ohne einen Unterschied zu erhalten. Schalte ich den Browser explizit auf UTF-8 um, sind die Umlaute auch wieder so, wie sie sein sollen.

    Dies betrifft aber nur diese "zentralen" Backendtemplates. Im Frontend oder angemeldet innerhalb des Backends für die Webseitenverwaltung ist alles fehlerfrei. Hier wird in den Seiteneinformationen auch korrekt UTF-8 angezeigt.

    Ich habe auch die Templates mal modifiziert, um zu sehen, ob da irgendein anderes ("altes") aufgerufen wird. Funktioniert so wie erwartet, nur die Umlaute eben nicht.

    Kann so was am Provider liegen, dass dort der Webserver mal-so mal-so ausliefert? Aber wonach wird das entschieden...

  2. #2
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.513
    User beschenken
    Wunschliste

    Standard

    schau mal nach ob das Template selbst als utf8 abgespeichert ist.
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  3. #3
    Contao-Nutzer
    Registriert seit
    10.10.2013.
    Beiträge
    43

    Standard

    Ah, das ist schon mal eine Idee. In die Richtung könnte es gehen. Also habe ich mal diverse Dateien aus dem Contao-Zip entpackt und per PSPad geöffnet. Aktuell habe ich nur drei UFT-8 codierte Dateien entdecken können:

    in 'system/modules/core/templates/backend/' sind nur die Dateien
    - be_diff.html5
    - be_login.html5

    in 'system/modules/core/templates/frontend/' (fe_page...) ist es keine

    in 'check/views/' ist es nur die Datei
    - index.phtml

    Alle andere in diesen Pfaden sind mit "Kodierung: ANSI (Windows)" gekennzeichnet.

    Schaltet man auf Hex-Ansicht um, beginnen die UTF-8-Dateien mit FFFE. Dies steht doch angeblich für UTF-16???

    Mein geändertes be_unavailable-Template hat bereits durch den internen Template-Editor UTF-8 bekommen. Die Anzeige ist jedoch "Windows-1252".

    Das war's wohl doch noch nicht.

  4. #4
    Contao-Nutzer
    Registriert seit
    10.10.2013.
    Beiträge
    43

    Standard

    Also ich nähere mich der Sache langsam. In der Browser-Console gibt es eine Warnung:
    Code:
    Die Codepage "iso-8859-1" von (HTTP-Header) überschreibt die Konflikte verursachende Codepage "utf-8" von (META-Tag).
    Im Ergebnis der Suchmaschine heißt es, dass der HTTP-Header immer Vorzug vor dem Meta-Tag im html hat. Letzterer ist nur dafür da, dass das richtige charset gewählt wird, wenn im HTTP-Header keine Angabe erfolgt, wie dies sich z.B. beim Direktaufruf einer html-Datei ohne Web-Server ergibt (und damit dies in einer php generierten Seite doch recht überflüssig macht?). Der HTTP-Header gibt von meinem Server dies zurück:
    Code:
    HTTP/1.1 503 Service Unavailable
    Date: Mon, 08 Dec 2014 15:18:47 GMT 
    Server: Apache/2.2.29 (Unix) 
    X-Powered-By: PHP/5.6.2 
    Expires: Thu, 19 Nov 1981 08:52:00 GMT 
    Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 
    Pragma: no-cache 
    Set-Cookie: PHPSESSID=...
    Set-Cookie: BE_USER_AUTH=...
    Set-Cookie: FE_USER_AUTH=...
    Vary: Accept-Encoding Content-Encoding: gzip 
    Content-Length: 13870 
    Connection: close Content-Type: text/html; charset=iso-8859-1
    Da ist der Schuldige.

    Durch weiteres Suchen, wie man das ändern kann, ergaben sich genauere Informationen bei http://www.w3.org/International/O-HTTP-charset.de.php.

    Den Apache-Webserver zu überzeugen per .htaccess und "AddDefaultCharset utf-8" die Seiten mit UTF-8-Einstellung auszuliefern, ist mir irgendwie nicht gelungen.

    Die Alternative ist es, dies direkt in php zu machen und damit servereinstellungsunabhängig zu sein. Ein Einfügen der Zeile
    Code:
    header('Content-type: text/html; charset=utf-8');
    irgendwo im Code vor der Ausgabe sollte reichen. Voilà. Die Umlaute sind nun richtig.

    Ich denke nun, dass diese Zeile in einigen php-Dateien vorhanden ist und in einigen nicht. Es klappt sicherlich bei manchen Servern mit den Umlauten, die default-mäßig keine charset-Vorgabe ausgeben. Hier macht der Meta-Tag im html-Template dann wohl doch Sinn (zumindest solange keine Einstellung für den HTTP-Header durch php erfolgt). Ansonsten muss die Zeile wohl sinnvollerweise in einer Reihe von php-Dateien ergänzt werden.
    Geändert von 462 (08.12.2014 um 16:32 Uhr)

  5. #5
    Contao-Nutzer
    Registriert seit
    10.10.2013.
    Beiträge
    43

    Standard

    Ich habe noch eine einfache, hoffentlich nur temporäre Variante gefunden. Einfach ins Template an den Anfang
    Code:
    <?php
    header("Content-Type: text/html; charset=utf-8");
    ?>
    und alles wird gut.
    Geändert von 462 (08.12.2014 um 16:31 Uhr)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •