Poison: ANSI oder UNICODE???

Hallo Zusammen,

meine Frage ist vermutlich ziemlich bescheuert, aber ich konnte bei den ganzen Hilfe-Seiten zu PHP im Netz nichts finden. Auch Wikipedia liefert leider keine wirkliche Antwort.

Nachdem ich mich jetzt mit HTML befasst habe und in der Lage bin, meine Seite selbst zu erstellen (hier vielen Dank an Deus Figendi für die Tipps und die Hilfestellung zu CSS), habe ich mich jetzt an PHP gewagt. Um alles ordentlich testen zu können, bevor ich es online stelle, habe ich mir auch einen lokalen Server eingerichtet. Klappt alles soweit, ABER:

Ich fand einen PHP-Codeschnipsel im Netz für eine Log-In Seite, den ich gern verwenden wollte. Habe mir den kopiert und in den Editor übertragen.
Beim speichern bekam ich dann den Hinweis, dass ich die Seite nicht mit der Codierung ANSI (alle meine HTML-Seiten habe ich mit der Cordierung gespeichert!) speichern kann, sondern die Codierung UNICODE verwenden muss, weil der PHP-Code Zeichen von UNICODE enthalten würde.
Das Ergebnis: die Datei ist zwar nun gespeichert (hat auch php-Endung!) kann aber auf dem lokalen Server nicht angezeigt werden. Es wird nur der Quellcode angezeigt. Online klappts!

Jetzt haben sich mir folgende Fragen aufgetan:

1. Muss ich meine PHP-Dateien generell mit der Codierung UNICODE abspeichern, also auch, wenn der Editor nicht meckert? Ich muss dazu sagen, dass ich mir vorher nie Gedanken darüber gemacht habe, wie ich meine Seiten abspeichere. ANSI ist voreingestellt und das habe ich so gelassen.

2. Falls ja, warum kann der lokale Server, es nicht anzeigen? Muss ich jetzt an die PHP.INI-Datei ran gehen?
Auch dazu habe ich eine Seite im Internet gefunden. Der Betreiber beschreibt die einzelnen Teile der INI-Datei. Zu der Einstellung ob ANSI oder nicht, stand da aber nichts.

Oder mache ich mir da einfach nur zu viele Gedanken und wenn online alles sauber dargestellt wird, ist es Wurst mit welcher Codierung abgespeichert wurde?

Wäre super ne Antwort zu kriegen.

Liebe Grüße
Poison

    1. Muss ich meine PHP-Dateien generell mit der Codierung UNICODE abspeichern, also auch, wenn der Editor nicht meckert?

    Unicode ist ein Zeichensatz (eine "Zeichentabelle"), dafür interessiert sich dein System wenig - für dich ist die Zeichencodierung relevant. Diese Sollte heutzutage (ohne begründete Ausnahmen) nicht von UTF-8 abweichen (vorzugsweise ohne Byte-Order-Mark).

    ist es Wurst mit welcher Codierung abgespeichert wurde?

    Nein, das sicher nicht - dieselbe Binärwurst sieht je nach Kodierung anders aus.

    Ggf. willst du Zeichencodierung für Anfänger lesen.

    1. @@suit:

      nuqneH

      1. Muss ich meine PHP-Dateien generell mit der Codierung UNICODE abspeichern, also auch, wenn der Editor nicht meckert?

      Du SOLLTEST dies tun. [CHANGING-ENCODING]

      Ggf. willst du Zeichencodierung für Anfänger lesen.

      Ggfs. nicht auf Deutsch. ;-)

      Qapla'

      --
      Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
      (Mark Twain)
      1. Ggfs. nicht auf Deutsch. ;-)

        Ich hab bewusst den deutschsprachigen Artikel und nicht den generischen Link verwandt :p

        1. Hallo ihr Zwei,

          ok, ich habe mir die Seite Zeichencodierung für Anfänger angesehen. Danke für den Hinweis. Verstanden habe ich, dass ich die richtige Codierung wählen muss, um meine Seiten online korrekt darstellen zu können.

          @suit:
          Wenn du sagst, es muss UTF-8 sein, weil alles andere zu Fehlern führen kann, speichere ich die Seiten eben nochmal neu ab, mit UTF-8 als Zeichencodierung.
          Gut soweit. Dann aber noch eine Frage:

          Ich habe sämtliche bisher erstellten HTML und PHP Seiten mit der Zeichencodierung ANSI gespeichert, da alles andere UNICODE, UTF-8 auf meinem lokalen Host (download über XAMPP für Windows) nicht angezeigt wird. Beim öffnen der Datei zeigt Firefox nur den Quellcode an, nicht die eigentlich Seite oder besser gesagt das, was meine Benutzer sehen sollten.

          Was muss ich anstellen, um das zu beheben? Ich hatte mir den lokalen Server extra installiert, um php-Dateien bei mir auf dem Rechner testen zu können, bevor ich sie online stelle.

          Liebe Grüße
          Poison

          1. Wenn du sagst, es muss UTF-8 sein, weil alles andere zu Fehlern führen kann

            Das habe ich nicht gesagt - ich sagte, dass man nur in begründeten Fällen etwas anderes als UTF-8 verwenden sollte ;)

            Wenn du konsequent UTF-8 verwendest, kannst du wenig falsch machen und musst nicht überlegen, wann wo welche Kodierung zum Tragen kommt.

            Ich habe sämtliche bisher erstellten HTML und PHP Seiten mit der Zeichencodierung ANSI gespeichert,

            ANSI ist eine Sammlung von Zeichensätzen und Zeichencodierungsformen - etwas "Genaues" Aussagen tut sie aber nicht. ISO-8859-1 wäre z.B. eine Zeichenkodierung.

            da alles andere UNICODE, UTF-8 auf meinem lokalen Host (download über XAMPP für Windows) nicht angezeigt wird. Beim öffnen der Datei zeigt Firefox nur den Quellcode an, nicht die eigentlich Seite oder besser gesagt das, was meine Benutzer sehen sollten.

            Kann ich nicht nachvollziehen - wenn du mit einer fehlerhaften Zeichenkodierung arbeitest, sollten im schlimmsten Fall die Zeichen "zerstört" sein, den Quelltext zu sehen ist "unüblich".

            Welchen Editor verwendest du?

            1. Das ganz normale Notepad (Word-Editor?), welches bei jeder Windows-Installation (ich habe Vista auf meinem Rechner) mit im Zubehör vorhanden ist.

              Bei den HTML-Dateien brauchte ich bis jetzt den lokalen Host nicht. Die konnte ich ja auf dem Rechner mit Fifefox oder Explorer öffnen. Einige davon hatte ich auch schon online zum testen. Aber es ist ziemlich müßig ständig alles hochzuladen, anzugucken, auszutesten und dann wieder zu löschen, weil was nicht passt. Fehler wegen der Zeichencodierung konnte ich allerdings nicht feststellen, also es wurde immer alles schön angezeigt. Habe im head-Tag auch den Charset ISO eingetragen.

              Da ich jetzt aber teilweise mit PHP arbeiten möchte, alles geht halt nicht mit HTML, dachte ich, tue ich mir mit dem lokalen Server leichter. Und jetzt funzt es nicht (grummel, grummel...)

              1. Das ganz normale Notepad (Word-Editor?), welches bei jeder Windows-Installation (ich habe Vista auf meinem Rechner) mit im Zubehör vorhanden ist.

                Schmeiss das weg und verwendet einen ordentlichen Editor - ich trau' dieser Sache nicht. Notepad++ ist zu empfehlen.

                Fehler wegen der Zeichencodierung konnte ich allerdings nicht feststellen, also es wurde immer alles schön angezeigt. Habe im head-Tag auch den Charset ISO eingetragen.

                Da sollte (und auch im HTTP-Header) ebenfalls UTF-8 notiert werden.

                1. Oh, ok. Bekomme ich Notepad++ als freien Download? Wo?

                  UTF-8 dann aber nur bei den php-Dateien, oder auch bei HTML?

                  Aaaahhhhh, mein Gehirn wird schon ganz matschig...

                  1. Bekomme ich Notepad++ als freien Download? Wo?

                    Ja. Notepad++.

                    UTF-8 dann aber nur bei den php-Dateien, oder auch bei HTML?

                    Folgendes Flowchart hilft dir bei der Auswahl sicher weiter:

                    Welchen Zeichencodierung soll ich in "diesem Fall" verwerwenden?
                        |
                        |
                        V
                      UTF-8

                    Aaaahhhhh, mein Gehirn wird schon ganz matschig...

                    Wenn dein Gehirn trocken ist wie eine Rosine würde ich mir eher Gedanken machen :p

                    1. Guten Morgen suit,

                      vielen Dank für deinen TIPP mit dem Notepad++.

                      Habe mir das Programm gestern Abend noch auf den Rechner gespielt und mir genauer angesehen. Echt klasse.

                      Was die PHP-Datei angeht, bin ich noch keinen Schritt weiter gekommen. Ich habe sie in UTF-8 konvertiert, das charset im head-Tag auf UTF-8 geändert und auch darauf geachtet, dass keine Byte Order Mark am Anfang der Datei steht. Soweit ich es erkennen konnte, ist im HTTP-Header sowohl UNICODE, als auch UTF-8 hinterlegt. Dasselbe in grün.

                      Ich habe aber nun, den Verdacht, dass es nicht an der Datei, sondern an dem lokalen Host liegt. Beim Öffnen der Index-PHP-Datei des Programmes, hat er mir die Fehlermeldung angezeigt, es wäre mit der Installation von XAMPP etwas nicht korrekt. Habe mich jetzt an das Forum von apache-friends.de gewandt. Dort habe ich XAMPP für Windows per download bezogen.

                      Bin mal gespannt, was noch alles kommt. So wird die Homepage ja nie fertig :-(((

                      Nochmal Danke und dir einen schönen Tag

                      Liebe Grüße
                      Poison

                      P.S. Mein Gehirn hat den Zustand einer Rosine (schwäbisch: Zibebe) noch nicht erreicht, Gott sei dank :-))

                      1. Was die PHP-Datei angeht, bin ich noch keinen Schritt weiter gekommen. Ich habe sie in UTF-8 konvertiert, das charset im head-Tag auf UTF-8 geändert und auch darauf geachtet, dass keine Byte Order Mark am Anfang der Datei steht. Soweit ich es erkennen konnte, ist im HTTP-Header sowohl UNICODE, als auch UTF-8 hinterlegt. Dasselbe in grün.

                        UNICODE oder ähnliches sollte nirgens stehen, weder im HTTP-Header noch in den Meta-Angaben des Dokuments.

                        Ich habe aber nun, den Verdacht, dass es nicht an der Datei, sondern an dem lokalen Host liegt.

                        Wie bereits erwähnt ist es äußerst unwahrscheinlich, dass es an der Zeichenkodierung liegt - ein Problem mit dem Webserver ist naheliegender, ja.

                        Ggf. einfach den XXAMP nochmal neu installieren.

          2. 'ǝɯɐu$ ıɥ

            Beim öffnen der Datei zeigt Firefox nur den Quellcode an, nicht die eigentlich Seite oder besser gesagt das, was meine Benutzer sehen sollten.

            Was muss ich anstellen, um das zu beheben? Ich hatte mir den lokalen Server extra installiert, um php-Dateien bei mir auf dem Rechner testen zu können, bevor ich sie online stelle.

            Entweder is deine Installation im *piep* oder du rufst deine Homepage falsch auf, sollte zb http://localhost/index.php sein...

            ssnɹƃ
            ʍopɐɥs

            --
            Answers: $1, Short: $5, Correct: $25, dumb looks are still free ...