Ankündigung

Einklappen
Keine Ankündigung bisher.

Sonderzeichen

Einklappen

Neue Werbung 2019

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

  • Sonderzeichen

    Hallo zusammen!

    Ich hab ein Programm, dass Adressen verwaltet.
    Nun hab ich mir ca 2200 Adressen aus einem anderen Programm auf csv kopiert, damit ich nicht wieder alle eingeben muss.

    Das Problem ist jetzt aber, dass die importierten Daten, bei den Sonderzeichen (ä,ö,ü,ß) nicht korrekt dargestellt werden.
    Ich hab es also mit htmlentities() probiert. Als das aber nichts gebracht hat, hab ich mir die csv-Datei noch mal genauer angesehen, und festgestellt, dass die Daten schon in der csv-Datei falsch drin stehen.

    Beispiel:
    J³rgen --> Jürgen
    Blõtter --> Blätter
    europõisch --> europäisch

    Frage: Wie kann ich die Daten wieder korrekt darstellen?

    Vielen Dank im Vorraus für jede Antwort!


  • #2
    Vor der ersten Ausgabe des Skripts
    Code:
    header('Content-Type: text/html; charset=iso-8859-1');
    einfügen.

    Kommentar


    • #3
      Hm, ich hab eine index.php, bei der füge ich JETZT BEREITS oben das hier ein:

      Code:
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
      Ist das nicht dasselbe?

      Kommentar


      • #4
        Hallo,

        doch das ist dasselbe. wenn die schon falsch in der csv datei drinstehehn, musst die sie mit str_replace ersetzen lassen.

        Gruß HaVoK

        Kommentar


        • #5
          Ok, also wenn sie schon falsch in der csv-Datei sind, ist die einzige Möglichkeit, herauszufinden, wie die Sonderzeichen dargestellt werden, und diese dann zu ersetzen.

          Hab ich das richtig verstanden?
          Wenn ja, wär das doch einfacher, das gleich mit Excel zu machen, oder?
          -> ich dachte eigentlich, dass die csv-Datei irgendeinen anderen Zeichensatz verwendet, den man dann ändern kann... geht wohl nicht, oder?

          Kommentar


          • #6
            was passiert denn wenn du deine csv DAtei mal in nem TExteditor öffnest, wie stehen die da dann drin?
            Wenn sie da nciht richtig stehen wird dir nix übrig bleiben als es zu ersetzen, oder nen andren Weg über Excel zu suchen.

            Kommentar


            • #7
              Danke für die Antworten!

              Ich hab doch das machen müssen, was ich eigentlich vermeiden wollte...
              Ich hab die ganzen Adressen nochmal exportiert (vom anderen Programm) und dabei diesmal genau darauf geachtet, dass die Daten korrekt sind (Sonderzeichen).
              Dann hab ich das ganze wieder für mein jetziges Programm umformatieren müssen (damit alles in die korrekten Felder kommt) und das ganze neu importiert.

              War zwar viel Arbeit, aber jetzt ist zumindest alles wieder so wie es sein soll.

              Das mit str_replace ging nicht, da auch manchmal Zeichen drin waren, die ja so gehören, und die wären dann alle weg gewesen, und einzeln mit Excel (suchen und ersetzen) wär auch zu aufwändig gewesen.

              Kommentar


              • #8
                Zitat von seeker
                Ist das nicht dasselbe?
                Nein!

                Kommentar


                • #9
                  Ähm,... und wo ist da der Unterschied?

                  Kommentar


                  • #10
                    na da bin ich auch mal gespannt

                    Kommentar


                    • #11
                      Hiermit wird der HTTP-Header gesetzt [, nach dem sich auch die meisten Browser richten]:
                      Zitat von Bruchpilot
                      Vor der ersten Ausgabe des Skripts
                      Code:
                      header('Content-Type: text/html; charset=iso-8859-1');
                      einfügen.
                      Und dies hier gehört in den - eher unbedeutenden - HTML-Header:
                      Code:
                      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

                      Kommentar


                      • #12
                        Na weil die Zeichen dann schon falsch von PHP an den Browser gesendet worden sein könnten.
                        Bringt ja bei JPG-Komprimierung auch nix ne verwaschene Datei dann doch nochma mit 0 Komprimierung abzuspeichern. Die Daten sind einfach schon vorher verloren gegangen.

                        Kommentar


                        • #13
                          Also jetzt nochmal zum Mitschreiben...

                          Wenn ich in meinem Programm bei der ersten Seite (die die index.php ist) ganz oben
                          das hier mache, BEVOR ÜBERHAUPT IRGENDWAS AUSGEGEBEN WIRD ODER SONST WAS GEMACHT WIRD:
                          Code:
                          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
                          dann ist das nicht dasselbe wie das:
                          PHP-Code:
                          <?
                          header('Content-Type: text/html; charset=iso-8859-1');
                          ?>
                          Möglicherweise steh ich ja noch auf der Leitung, aber was soll da anders sein?

                          Kommentar


                          • #14
                            Zitat von seeker
                            Wenn ich in meinem Programm bei der ersten Seite (die die index.php ist) ganz oben
                            das hier mache, BEVOR ÜBERHAUPT IRGENDWAS AUSGEGEBEN WIRD ODER SONST WAS GEMACHT WIRD:
                            Code:
                            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
                            Dann ist das invalides HTML... :wink:
                            Code:
                            <!DOCTYPE HTML ...>
                            <html>
                              <head>
                                <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
                              </head>
                            ...
                            </html>
                            Zitat von seeker
                            Möglicherweise steh ich ja noch auf der Leitung, aber was soll da anders sein?
                            Such doch einfach mal bei Google nach HTTP-Header und anschließend nach HTML.

                            Kommentar


                            • #15
                              Es ist nicht das selbe. Browser haben da ihre Präferenzen. Und die liegen, soweit mir bekannt, auf dem http header; sprich: wenn der http header gesendet wird, dann kann meta/content nach Hause gehen.
                              Und jetzt kann es sein, dass default_charset und default_mimetype in der php.ini gesetzt wurden. http://de2.php.net/manual/en/ini.php
                              Daraus bastelt php dann immer, ohne weiteres Zutun durch den Skripter, den Content-type/charset header zusammen.

                              Kann gesetzt sein, muss aber nicht. phpinfo() hilft da weiter.

                              Kommentar

                              Lädt...
                              X