[PHP5] zeichen...

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

  • [PHP5] zeichen...

    Hallo alle zusammen...

    Ich arbeite nebenbei die ganze Zeit an einem kleinem System.
    Hab bis jetzt ausschließlich lokal unter einem XAMPP - Windows gearbeitet ( safemode = on ) und bin jetzt an dem Punkt, wo ich das ganze mal auf verschiedenen PublicServern testen will, bevor ich weiter mache. Gleich beim ersten Server bekomm ich eigenartiger Weise diese komischen kryptischen Zeichen angezeigt... zusätzlich kommt es dadurch zu folgefehlern.

    

    Lokal habe ich das ganze unter PHP5.x und MySQL 5.x geschrieben und es lief wunderbar.
    Wodurch kann es zu diesen kryptischen Zeichen kommen?
    Ich bin mir sicher, dass ich das schonmal gesehen habe aber weiß nicht, wo es aufgetaucht ist.

    Hoffe ihr könnt mir helfen...

    Mario

  • #2
    du hast die datei mal mit nem editor geöffnet, der auf utf-8 lief, die datei ist aber als iso gespeichert. schau in die datei rein (notfalls hex) und lösche die zeichen am anfang
    it's not a bug,
    it's a feature!

    Kommentar


    • #3
      [PHP5] charset

      Ich habe allerdings über 300 Dateien und arbeite seit Monaten an verschiedensten Dateien. Als Editor nutze ich den "Notepad++".
      Ich hab die Zeichen noch in keiner meiner Dateien gesehen.

      Mario

      Kommentar


      • #4
        Hallo

        Vieleicht sind die PHP Versionen unterschiedlich.
        Auf Local hast du 5 drauf und der Server hat vieleicht 4.x drauf.

        Dann kann es zu komischen Sachen kommen.
        Beispiel: timestamp hat bei php5: 19 Stellen, bei php 4.x: 14
        So wirds bestimmt andere Sachen auch noch geben.

        LG
        Susanne

        Kommentar


        • #5
          Re: [PHP5] charset

          Ich habe allerdings über 300 Dateien und arbeite seit Monaten an verschiedensten Dateien. Als Editor nutze ich den "Notepad++".
          Ich hab die Zeichen noch in keiner meiner Dateien gesehen.
          Guck dir mal diesen Beitrag in meinem Blog an, vielleicht macht das einiges klarer!

          Kommentar


          • #6
            [PHP5] Version

            Eben genau das hab ich voher versucht zu berücksichtigen.
            Auf dem Server, wo ich es gerade teste, ist [ PHP Version 5.2.5-0.dotdeb.2 ] installiert.
            Insofern sollte das also keine Probleme machen.

            [EDIT]
            PHP-Desaster: Ich schau mir deinen Blog mal an. Hab nicht gesehen,d ass du zwischenzeitlich geschrieben hast.

            Mario

            Kommentar


            • #7
              [PHP5] UTF-8

              Also wenn ich das jetzt richtig verstehe, dann sind sozusagen in all meinen Dateien die aller ersten zeichen diese UTF-8 BOM Zeichen oder? Und die sind dann nur durch meinen Editor "Notepad++" in die Datei eingefügt wurden oder?

              Welchen Editor schlagt ihr denn so vor, was man nehmen sollte um sowas zu umgehen?

              Mario

              [EDIT]
              Mir ist eben nochwas aufgefallen, was es sein kann.
              Im Header meiner letztendlichen Datei, die im Browser erzeugt wird, habe ich immer ... <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> ... stehen. Der Browser schaltet jedoch dennoch in ISO-8859-1 um und somit kommt es auch dazu, dass er diese UTF-8 zeichenkette ausgibt. Mach ich was falsch?

              Mario
              Zuletzt geändert von GELight; 24.03.2008, 23:18.

              Kommentar


              • #8
                Der UTF-8 Boom ist auch so da, ohne Angabe eines Charsets. Notepad++ bietet allerdings afaik eine Möglichkeit auch ohne Boom zu speichern. Geh mal die Optionen durch oder such einfach mal, wir hatten das Thema hier schon öfter.
                Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                Kommentar


                • #9
                  Der UTF-8 Boom ist auch so da, ohne Angabe eines Charsets. Notepad++ bietet allerdings afaik eine Möglichkeit auch ohne Boom zu speichern. Geh mal die Optionen durch oder such einfach mal, wir hatten das Thema hier schon öfter.
                  Format -> Kodiere in UTF-8 (ohne BOM)

                  Kommentar


                  • #10
                    [PHP5] UTF8

                    Also jetzt wirds total verdreht. Und der Browser springt dennoch nicht in UTF-8... Das hier ist mal meine kleine Testdatei...

                    PHP-Code:
                    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
                    <html>
                    <head>
                        <title>UTF-8 TEST</title>

                        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

                    </head>
                    <body>
                        <?php
                            
                    echo "ö ä ü ß Ö Ä Ü";
                        
                    ?>
                    </body>
                    </html>
                    Egal wie ich die Datei konvertiere oder kodiere. Der Browser ( FF ) bleibt in ISO-8859-1.... Den interessiert mein Header kein Ding.

                    Mario
                    Zuletzt geändert von GELight; 25.03.2008, 19:40.

                    Kommentar


                    • #11
                      Sende mal einen Content-Type Header.
                      Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                      Kommentar


                      • #12
                        [PHP5] header

                        Dann bringt er mir:

                        
                        Warning: Cannot modify header information..........


                        Wenn ich meine Datei über den normalen EDITOR explizit als ANSI speichere, dann kommt zwar der Fehler nicht und er stellt alles korrekt dar aber eben als ISO... ich will den Browser aber in UTF-8 haben, da meine ganzen Klassen und auch die DB UTF-8 kodierte zeichen zurück und ausgeben...

                        Mein derzeitiger Testcode:
                        PHP-Code:
                        <?
                           header('Content-Type: text/html; charset=utf-8');
                        ?>
                        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
                        <head>
                            <title>test</title>
                            <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

                        </head>
                        <body>
                            <?php
                                
                        echo "ö ä ü ß Ö Ä Ü";
                            
                        ?>
                        </body>
                        </html>
                        Mario

                        Kommentar


                        • #13
                          Vor dem Header dürfen keine weiteren Zeichen (auch keine Leerzeichen und kein Boom) stehen. Die Umlaute müssen dann natürlich in UTF-8 kodiert sein.
                          Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                          Kommentar


                          • #14
                            [PHP5] Umlaute

                            Das weiß ich.... ich gebe auch keinerlei zeichen vor dem Header aus.
                            Diese 3 Zeichen sind ja vom UTF-8 BOM....

                            Wenn ich meine Datei als ANSI speichere, dann sind zwar diese zeichen weg aber er schaltet in ISO und zeigt die Umlaute normal an.
                            Speichere ich als UTF8, dann schaltet der Browser zwar wie ich es möchte in UTF8 aber da jetzt diese UTF-8 BOM Zeichenkette in der Datei steht, wird diese nun als erstes ausgegeben und ich bekomme natürlich diesen Fehler.

                            Ich weiß nun nicht, wie ich arbeiten soll, damit ich mein System im UTF8 halten kann und dennoch die Dateien normal über einen "ordentlichen" Editor bearbeiten kann.

                            [EDIT]
                            Die Umlaute hier sind nur als Test, damit ich was sehe.
                            Mein System selbst gibt aus der DB wie auch meine Klassen, schon UTF-8 codierte Zeichen zurück....
                            Der Browser würde ja alles korrekt darstellen, wenn ich ihn dazu bringen könnte auch in UTF-8 zu schalten. Genau das ist ja mein Problem.

                            Ich weiß nun nicht, mit was für einem Editor ich am besten wie arbeiten muss und wie ich meine Dateien nun speichern muss, damit am Ende alles in UTF-8 verarbeitet wird ind er Ausgabe.

                            Mario
                            Zuletzt geändert von GELight; 25.03.2008, 22:11.

                            Kommentar


                            • #15
                              Notepad++ -> Format -> Kodiere in UTF-8 (ohne BOM)
                              Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                              Kommentar

                              Lädt...
                              X