Ankündigung

Einklappen
Keine Ankündigung bisher.

Server Ausgabe bei XML Export

Einklappen

Neue Werbung 2019

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

  • Server Ausgabe bei XML Export

    Hallo,
    woran kann es liegen, dass bei ein und demselben XML Export Skript je nach Server die Umlaute beim einen Server richtig ("ä, ö, ü") und beim nächsten falsch ("‰, ˆ, ¸") ausgegeben werden?

    Code:
    $s .= "<".$col->name.">".htmlspecialchars($row[$y])."</".$col->name.">\n";

    Ist php dafür überhaupt zuständig, oder ist das eine Einstellung des WebServers?


    Gruß
    Eviandem


  • #2
    hmm das riecht doch stark nach einem zeichencodierungsfehler führ doch mal eine php_info dateio auf deinem webserver aus und schau dir mal die zeichencodierung an die eingestellt ist

    HTTP_ACCEPT_CHARSET ISO-8859-1,utf-8;q=0.7,*;q=0.7

    z.b steht ziehmlich weit oben

    greetz

    Kommentar


    • #3
      OK, werde ich machen, aber was wäre das richtige beim XML Export?

      Ist ("ä, ö, ü") richtig, oder ("‰, ˆ, ¸")?


      Gruß
      Eviandem

      Kommentar


      • #4
        na ich glaube doch du hast da dein text in deinen <items> usw so wie es die deine XML Sytax haben will und die willst du doch sicher richtig angezeigt bekommen also ein ä soll ein ä sein und nicht das dir aus deinem ä ein % gemacht wird opder sonstiges

        Kommentar


        • #5
          Ja, das hört sich so einfach an

          Natürlich wird ein "ä" eingegeben und ich will in der XML Datei ein "ä" haben (bzw. hinterher in der anderen Datenbank).

          Aaaaaaaaaaber, als Anfänger in Sachen PHP muss man mit allem rechnen. So hätte es genauso gut heißen können:
          - "Ist doch logisch - "ä" muss als "‰" ausgegeben werden, schliesslich...
          oder
          - "Das kommt drauf an" (meine Lieblingsantwort


          Wenn man weiß, wonach man Suchen muss, ist es erheblich einfacher


          Gruß
          Eviandem

          Kommentar


          • #6
            also ich kann mir grad nix anderes vorstellen als das du einfach den falschen iso standart gesetzt hast in der server config. Deswegen zeigt er dir die Umlaute nicht and bzw macht zeichen andere zeichen draus deswegen würd ich erstmal danach suchen. Du hast ja gesagt das das skript auf nem anderen server richtig läuft daher liegt der fehler schonmal nicht im skript. Schau doch mal in der php.ini nach da steht was du als default charset gesetzt hast

            Kommentar


            • #7
              Wir wissen garnichts ueber deinen XML-Export und auch ueber die Herkunft der Daten wissen wir nichts. Wie sollen wir denn da helfen?
              "Mein Name ist Lohse, ich kaufe hier ein."

              Kommentar


              • #8
                Hallo Chriz,
                ich bin schon zufrieden mit den Antworten! reliC hat mir schon mal ein Stück weiter geholfen.

                Jetzt muss ich erstmal die erforderlichen Informationen zusammentragen.


                Gruß
                eviandem

                Kommentar


                • #9
                  So, ich habe jetzt Zugang zu beiden Servern und habe auf beiden die phpinfo aufgerufen.

                  Der eine läuft mit PHP 4.3.10 (auf diesem werden die Zeichen richtig ausgegeben)

                  Der andere läuft mit PHP 5.2.3 (hier werden die falschen Zeichen ausgegeben)


                  Den Wert HTTP_ACCEPT_CHARSET habe ich bei beiden nicht finden können (habe sogar im Browserfenster danach gesucht)

                  Das einzige was zum Thema ISO-8859-1 bei beiden stand:

                  Directive Local Value Master Value
                  iconv.input_encoding ISO-8859-1 ISO-8859-1
                  iconv.internal_encoding ISO-8859-1 ISO-8859-1
                  iconv.output_encoding ISO-8859-1 ISO-8859-1


                  Und nun?

                  Gruß
                  Eviandem

                  Kommentar


                  • #10
                    also wenn du die php info ausfürst auf deinem server dann bekommst dann scrollst du bissl runter und hast im modul APACHE ENVIROMENT
                    den eintrag:
                    HTTP_ACCEPT_CHARSET | ISO-8859-1,utf-8;q=0.7,*;q=0.7
                    danach kannst du mal schauen aber so wie ich es sehe hast du ja eigentlich schon den richtigen ISO standart drinn vielleicht schauste noch ob du utf-8 anhast ansonsten bin ich überfragt wüsst nicht wo noch der fehler dann liegt maybe doch in deiner xml script datei ?

                    Kommentar


                    • #11
                      Zitat von reliC Beitrag anzeigen
                      hast im modul APACHE ENVIROMENT
                      den eintrag:
                      HTTP_ACCEPT_CHARSET | ISO-8859-1,utf-8;q=0.7,*;q=0.7
                      Habe ich leider bei beiden nicht. Unter APACHE ENVIROMENT und auch sonst nirgends befindet sich bei mir ein Eintrag der HTTP_ACCEPT_CHARSET oder ähnlich heißt.

                      Das einzige was ich gefunden habe ist:

                      default_charset no value no value

                      Aber das steht unter Configuration - PHP Core und hat vermutlich nichts mit dem Apache Server zu tun.


                      Hier sind die Apache Versionen der beiden Server:

                      Apache/2.0.53 (Linux/SUSE) - das ist ein Strato vPower Server
                      Apache/2.0.59 (Unix) PHP/5.2.3 DAV/2 - das ist meine lokale MAMP Installation


                      Gruß
                      Eviandem

                      Kommentar


                      • #12
                        hmm also ich habe gerade dein anderen post gesehen wo du dein XML export skript gepostet hast dabei fiel mir auf das du diese Zeichenkodierung benutzt:

                        PHP-Code:
                        $s .= "<?xml version="1.0\" encoding=\"iso-8859-1\" ?>\n";
                        ich weiß nich ob das der fehler is wieso er die die zeichen falsch ausgiebt aber probier das mal zu ändern in:

                        PHP-Code:
                            $s .= "<?xml version="1.0\" encoding=\"utf-8\" ?>\n";
                        greetz

                        Kommentar


                        • #13
                          Hallo reliC,
                          hatte ich auch schon ausprobiert. Bringt nix: Die XML Datei hat falsche Zeichen und beim Import in meine andere Datenbank gibt es sogar eine Fehlermeldung. Aus diesem Grund musste ich bei iso-8859-1 bleiben.


                          Ich hatte da auch schon drüber nachgedacht, aber die Zeile

                          PHP-Code:
                          $s .= "<?xml version="1.0\" encoding=\"iso-8859-1\" ?>\n";
                          macht nichts anderes, als Text in ein Dokument zu schreiben. Man könnte auch "Donald Duck" reinschreiben und erhielte das selbe Resultat beim Export (der Import in die andere Datenbank hingegen würde vermutlich gar nicht mehr funktionieren).


                          -> Oder liege ich mit meinem Verständnis falsch, dass es doch eh nur reiner Text ist, der da exportiert wird?


                          Gruß
                          Eviandem

                          Kommentar

                          Lädt...
                          X