Server von iso-8859-1 auf utf-8 umgestellt

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

  • Server von iso-8859-1 auf utf-8 umgestellt

    Hallo zusammen,

    mein Provider hat den Server von iso-8859-1 auf utf-8 umgestellt. Zuvor war meine komplette Website auf iso-8859-1 ausgerichtet.
    Nun werden die Umlaute aber z.B. wie folgt angezeigt: ...auf die jeweilige �berschrift �ffnet...

    Meine Header habe ich derzeit noch wie folgt eingerichtet:

    HTML-Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
            "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
    
    <Html>
    <head>
    
    <title>Titeltext</title>
    <meta http-equiv="content-type" content="text/html; iso-8859-1">
    Ein einfaches umstellen von iso-8859-1 auf utf-8 im Quelltext hat keine Änderung gebracht.

    Was muß ich nun machen, dass die Umlaute korrekt angezeigt werden? Kann ich z.B. auf iso-8859-1 bleiben, obwohl der Server auf utf-8 ist? Muß ich alle Umlaute nun z.B. mit &uuml; maskieren? Welche Auswirkungen hat dies auf die Suchmaschinen?
    Also kurz gesagt welche Strategie sollte ich nun mit der utf-8 Änderung einschlagen?

    Schon vorab vielen Dank für die Rückinfo.

    Gruß

    Jo

  • #2
    Zitat von jo73 Beitrag anzeigen
    Kann ich z.B. auf iso-8859-1 bleiben, obwohl der Server auf utf-8 ist?
    Ja, natürlich - du musst ihm nur beibringen, deine Dateien mit einer entsprechenden Charset-Angabe im Content-Type-Header auszuliefern.

    In deinen PHP-Scripten kannst du das per header machen, für reine HTML-Dateien musst du die Serverkonfiguration per .htaccess anpassen; die Direktiven AddDefaultCharset und AddCharset sollten dabei behilflich sein.

    Den Zeitpunkt zu nutzen, um dein Projekt komplett auf UTF-8 umzustellen, wäre aber auch nicht verkehrt. Das würde allerdings ein bisschen Einarbeitung erfordern - denn deiner Fragestellung nach scheinst du was das angeht noch recht wenig Kenntnisse zu haben.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Hallo,

      Danke für die Antwort.
      Derzeit ist die Ausgangslage, dass ich in meiner .htaccess
      HTML-Code:
      AddCharset utf-8 .php .html .xhtml
      verwende und in meiner php-Datei die auch html enthält, das bereits u.g. set-up.
      Bei den charset habe ich mir vor der Serverumstellung nicht soviele Gedanken gemacht und nicht die Website strategisch auf utf oder iso ausgelegt.

      Ich möchte nun aber wieder eine funktionierende Darstellung generieren und zunächst einmal eine Lösung hinbekommen. Zum Teil war dies bei Elementen möglich indem ich einfach wieder über die index-Datei generell in iso umgestellt habe (zum Beispiel für das phpbb Forum).
      Bei meinen php-Dateien hat dies leider aber nicht funktioniert.
      Deshalb meine Frage hier im Forum um Support.
      Wie müsste nun der Header meiner PHP/HTML Seite konkret aussehen und was muss ich in die .htaccess eintragen mit dem Hintergrund, dass ich wie gesagt die puren html-Seiten wieder über iso ohne Probleme darstellen kann?

      Schon vorab vielen Dank für die Hilfe.

      Gruß

      Jo

      Kommentar


      • #4
        Na wenn du ISO verwenden willst, solltest du vielleicht nicht UTF-8 angeben, hm?
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          ...das ist richtig, aber genau auch Teil meiner Frage.

          Bereits vor der Serverumstellung war diese Zeile in meiner .htaccess eingebaut.
          Vielleicht aufgrund dessen, dass der Server ja vorher auf iso-8859-1 gelaufen ist, weiß ich aber nicht genau.

          Nun die Frage, ob ich auch in der .htaccess auf iso umstellen soll und wenn ja wie lautet hier dann der Befehl? Ich würde dies aber jetzt nicht mehr logisch finden, da der Server nun ja auf utf-8 umsgestellt ist.
          Könnte das Umstellen in der .htaccess darüber hinaus irgendetwas auf der Website negativ beieinflussen?
          Ich möchte am Ende des Tages nur keinen "Mischmasch" zwischen iso und utf haben und nur ein sauberes Umlaute-Layout für Teile meiner Website generieren.

          Zusammengefasst also:
          Server: utf-8 -> ist fix
          .htaccess: AddCharset utf-8 .php .html .xhtml -> ändern?
          hmtl-File: iso-8859-1 setting -> funktioniert derzeit!
          html/php-File: utf/iso -> welcher header-Befehl?

          Wäre super, wenn hier jemand eine Struktur mit den entsprechenden Scripts vorschlagen könnte.

          Schon vorab vielen Dank

          Jo

          Kommentar


          • #6
            Zitat von jo73 Beitrag anzeigen
            Vielleicht aufgrund dessen, dass der Server ja vorher auf iso-8859-1 gelaufen ist, weiß ich aber nicht genau.
            Das, und „der Server wurde auf UTF-8 umgestellt“, sind in dem Zusammenhang unsinnige Formulierungen.

            Höchstens die Defaultwerte können umgestellt worden sein - das betrifft deine Scripte und Dateien aber nur indirekt.

            Zusammengefasst also:
            Server: utf-8 -> ist fix
            .htaccess: AddCharset utf-8 .php .html .xhtml -> ändern?
            hmtl-File: iso-8859-1 setting -> funktioniert derzeit!
            Das kann dann aber schon nur Zufall sein - wenn deine Dateien in ISO-8859-1 kodiert abgespeichert sind, aber vom Server beim Ausliefern als UTF-8 ausgegeben werden, hat letzteres höhere Priorität.

            Was tatsächlich der Fall ist, solltest du erst mal untersuchen, indem du dir die Response Header anschaust, bspw. mit Firebug.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              ...die Antwort verstehe ich so, dass auf utf-8 eingestellte Server auf alle Fälle den charset (iso-8859-1) aus der html datei "overruled".

              Welchen Einfluß hat dann aber
              HTML-Code:
              AddCharset utf-8 .php .html .xhtml
              in der .htaccess?

              Fakt ist aber, dass z.B. mein phpbb Forum nach der Umstellung durch meinen Provider die Layoutprobleme "�berschrift �ffnet" angzeigt hat und nachdem ich die config.php mit
              HTML-Code:
              ini_set('default_charset', 'iso-8859-1');
              versehen hatte, dieses Problem behoben war. Trotz des Set-ups wie bereits genannt.
              Also es funktioniert teilweise, ich kann mir aber natürlich gut vorstellen, dass irgendwo ein Knoten ist.

              Wie muß ich nun bei den php/html Dateien vorgehen?

              Gruß

              Jo

              PS: Auf welchen Befehl muß ich auf Firebug genau klicken, um den Response Header zu sehen?

              Kommentar


              • #8
                hm - wenn du mich fragst .. besuch deine Seite mit deinem bevorzugten Browser und lass dir die Seitencodierung anzeigen ... meines Wissens nach sind die Browser ziemlich genau darin, die gesendete Codierung zu erkennen - und zeigen dann korrekt an:

                Unicode (UTF-8)
                oder
                Westlich (ISO-8859-1 ) oder -15 (fürs Euro-Zeichen)
                selbst die älteren Codierungen CP1250 / CP1252 erkennen die recht zuverlässig (^^)
                [font=Verdana]
                Wer LESEN kann, ist klar im Vorteil!
                [/font]

                Kommentar


                • #9
                  Hallo,

                  um die Situation noch einmal zusammenzufassen.

                  Der Provider hat von iso-8859-1 auf utf-8 umgestellt
                  Die sql-DB ist auf utf-8
                  Die .htaccess beinhaltet:
                  HTML-Code:
                  AddCharset utf-8 .php .html .xhtml
                  Die htm-Seiten beinhalten derzeit:
                  HTML-Code:
                  <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
                  Die php/htm-Seiten beinhalten derzeit:
                  HTML-Code:
                  <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
                  Derzeitige Darstellung:
                  htm-Seiten -> werden korrekt bzgl. Umlaute angezeigt
                  php/htm-Seiten -> Umlaute werden falsch angezeigt
                  Kontaktseite in php -> funktioniert bei Einträgen mit Umlauten nicht mehr

                  Frage:
                  Was muß ich konkret machen (html Tags), um wieder eine korrekte Darstellung und eine funktionierende Kontaktseite in php zu erhalten?

                  Nochmals vielen Dank für die Rückinfo.

                  Gruß

                  Jo

                  Kommentar


                  • #10
                    Die Voreinstellung der Direktive AddDefaultCharset ist nicht ohne Grund auf off. Siehe auch hier. Wenn die Direktive auf off steht, wird der verwendete Zeichensatz aus der HTML Meta Angabe content-type verwendet.

                    Also stell die Direktive AddDefaultCharset auf off und verwende in Deinen HTML Dokumenten immer eine Angabe zum verwendeten Zeichensatz. Dann sollte es laufen.
                    MM Newmedia | MeinBlog

                    Kommentar


                    • #11
                      Hallo ezkimo,

                      vielen Dank für den konkreten Hinweis.

                      Das heißt dann konkret, dass ich AddCharset utf-8 .php .html .xhtml aus der .htaccess entferne, oder?

                      Was heißt das dann aber noch für die php-Seiten? Diese in den Meta Tags mit iso-8859-1 belassen?
                      Wie gesagt, derzeit funktionieren gerade diese php-Seiten nicht richtig und inbesondere werden keine Texte mit Umlauten im php-Kontaktformular übertragen.

                      Nochmals vielen Dank.

                      Gruß

                      Jo

                      Kommentar


                      • #12
                        In der htaccess solltest Du die AddDefaultCharset Direktive zur Sicheerheit mal auf off setzen und schauen, ob es einen Effekt hat. Überprüfe, ob der richtige Zeichensatz im HTML Kopf angegeben ist. Darüber hinaus muss der komplette Code natürlich auch im entsprechenden Zeichensatz geschrieben worden sein. Also überprüfe Deinen Editor, ob er die von Dir angewandten Zeichensätze unterstützt.
                        MM Newmedia | MeinBlog

                        Kommentar


                        • #13
                          ...o.k., dass heißt dann:

                          a)
                          HTML-Code:
                          AddCharset utf-8 .php .html .xhtml
                          AddDefaultCharset off
                          b) ich habe bei allen derzeitigen htm und htm/php Seiten den iso Zeichensatz in den Meta-Tags, wie bereits geschrieben

                          c) ich habe alle htm Seiten wahrscheinlich mit iso geschrieben, aber nie darauf geachtet, ob man auch etwas in utf-8 schreiben kann; was wäre hier anders, außer das man in den meta tags statt iso-8859-1 den Befehl utf-8 aufnimmt?

                          d) wie kann ich dies im Editor überprüfen? ich verwenden IE und den Firefox

                          e) gibt es noch einen Hinweis zur php Formular Problematik?

                          Ich hätte nie gedacht, dass das mit der Codierung so kompliziert ist?!? kann ich trotzdem irgendwie auf iso bleiben, wenn der Hoster auf utf-8 umgestellt hat und die DB ebenfalls auf utf-8 läuft?

                          Danke

                          Gruß

                          Jo

                          Kommentar


                          • #14
                            Zitat von jo73 Beitrag anzeigen
                            ...o.k., dass heißt dann:

                            a)
                            HTML-Code:
                            AddCharset utf-8 .php .html .xhtml
                            AddDefaultCharset off
                            Du möchtest doch, dass Deine Seiten im westeuropäischen Zeichensatz (ISO-8859-1) angezeigt werden, oder? Wieso notierst Du dann mit AddCharset den UTF-8 Zeichensatz? Scheint so, als würdest Du nicht wirklich wissen, was Du tust. Lass das mit dem UTF-8 doch einfach mal weg. Das haben andere aber auch schon gesagt.

                            Zitat von jo73 Beitrag anzeigen
                            b) ich habe bei allen derzeitigen htm und htm/php Seiten den iso Zeichensatz in den Meta-Tags, wie bereits geschrieben
                            Gut, das ist Voraussetzung für ein sauberes Arbeiten mit AddDefaultCharset = off

                            Zitat von jo73 Beitrag anzeigen
                            c) ich habe alle htm Seiten wahrscheinlich mit iso geschrieben, aber nie darauf geachtet, ob man auch etwas in utf-8 schreiben kann; was wäre hier anders, außer das man in den meta tags statt iso-8859-1 den Befehl utf-8 aufnimmt?
                            Im Normalfall siehst Du nicht, ob ein Zeichen ISO oder UTF codiert ist. Wenn Dein Editor die Eigenschaften einer Datei anzeigen kann, kannst Du eventuell sehen, ob die Datei ISO oder UTF codiert ist. Mal angenommen Du schreibst eine PHP Datei mit einem UTF-8 Zeichensatz, speicherst sie aber als ISO, wirst Du die Ausgabe auf dem Bildschirm wahrscheinlich mit einigen für Dich kryptisch wirkende Zeichen sehen.

                            Zitat von jo73 Beitrag anzeigen
                            d) wie kann ich dies im Editor überprüfen? ich verwenden IE und den Firefox
                            Editor != Browser
                            Mit einem Editor bearbeitest Du Deine HTML und PHP Dateien. Mit dem Browser siehst Du lediglich das Resultat, welches z.B. eine PHP Datei an den Browser sendet. Ich weiß nicht welchen Editor Du benutzt. Daher kann ich Dir nicht sagen, ob Dein Editor überhaupt in der Lage ist mit verschiedenen Zeichensätzen zu arbeiten. Bitte schaue hier in die Hilfe oder Dokumentation Deines Editors.

                            Zitat von jo73 Beitrag anzeigen
                            e) gibt es noch einen Hinweis zur php Formular Problematik?
                            Noe ... befolge die Angaben in diesem Thema. Damit solltest Du eigentlich ans Ziel kommen.

                            Ich hätte nie gedacht, dass das mit der Codierung so kompliziert ist?!? kann ich trotzdem irgendwie auf iso bleiben, wenn der Hoster auf utf-8 umgestellt hat und die DB ebenfalls auf utf-8 läuft?
                            Nein, das ist nicht schwierig. Man muss sich nur bewusst sein, mit welchem Zeichensatz man arbeitet. Dazu muss man eben wissen, wie man den Zeichensatz einstellt.

                            Folgende Links sollten Dir weiterhelfen:
                            1. MySQL :: MySQL 5.1 Referenzhandbuch :: 10.4 Verbindungszeichensatz und -sortierfolge
                            2. core - Apache HTTP Server
                            3. Language information and text direction
                            MM Newmedia | MeinBlog

                            Kommentar


                            • #15
                              Hallo,

                              nun hatte ich AddCharset utf-8 .php .html .xhtml aus der .htaccess entfernt und AddDefaultCharset = off eingefügt.
                              Danach zeigte mir die Website einen Internen Serverfehler (500)!

                              Nachdem ich das AddDefaultCharset = off wieder entfernt hatte, war der 500er Fehler wieder weg, die Seite sieht aber wie zuvor aus, d.h. z.T. werden die Umlaute falsch angezeigt.

                              Je mehr sich man in diese Thematik iso/utf einarbeitet, umso komplexer wird diese für mich. Ich möchte vermeiden, dass man am Ende ein Mischmasch zwischen iso und utf generiert.

                              Also der Hoster hat den Server in utf-8 umgestellt, meinen Default Charset konnte ich bei meinem Hoster selbst in utf-8 umstellen, die .htaccess hat nun keinen Charset-Befehl mehr und alle htm bzw. htm/php Dateien sind in iso-8859-1 verfasst (da ja auch zuvor der Server auf iso-8859-1 war).

                              Any help? Ich verzweifle langsam noch.

                              Danke.

                              Gruß

                              Jo

                              Kommentar

                              Lädt...
                              X