Sonderzeichen Problem. Was kann ich noch machen?

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

  • Sonderzeichen Problem. Was kann ich noch machen?

    Hallo zusammen,
    vielleicht gibt es schon mehrere Threads über dieses Thema, doch leider habe ich keinen gefunden. Ich habe seit langen Probleme mit Sonderzeichen. Egal was ich ausprobiere, es kommt immer wieder zu Umwandlungsproblemen. Ich habe es schon mit htmlentities(), htmlspecialchars(),preg_replace mit "$suchmuster,$ersetzungen" sowie ohne.
    Ich verwende auch iso-8859-1 doch immer wieder kommt es zu Fehlern.

    Beispiel:
    Gibt jemand "Grüße" ein, so gibt $_POST['strNachricht'] das hier aus: GrüÃ�e

    Wie löse ich das Problem, dass die Einträge ins Gästebuch vorher auf Sonderzeichen kontrolliert werden und die Umwandlung anschließend in die Datenbank gespeichert werden kann?

  • #2
    wie/wo verwendest du dein iso..

    Kommentar


    • #3
      Original geschrieben von TobiaZ
      wie/wo verwendest du dein iso..
      Da auf der Homepage eine Galerie läuft, brauche ich für eine Seite UTF, ansonsten wird ISO verwendet.

      PHP-Code:
      <?php
      if($_GET['show']=="bilder"){?>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"><br><?php
      } else {?>
        <meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\"><br><?php
      }

      ?>

      Kommentar


      • #4
        1. kannst du dir sicher sein, dass der browser sich daran hält? eine fehlkonfiguration des servers könnte es verhindern. hint - die http headers der antwort mal anzeigen lassen (und posten).

        2. was sind das für komische backslashes im else-zweig?

        3. welche kodierung ist auf der seite eingestellt, wo das formular sich befindet?

        4. wie sind die charset-einstellungen der datenbank-tabelle?

        Kommentar


        • #5
          Original geschrieben von penizillin
          1. kannst du dir sicher sein, dass der browser sich daran hält? eine fehlkonfiguration des servers könnte es verhindern. hint - die http headers der antwort mal anzeigen lassen (und posten).

          2. was sind das für komische backslashes im else-zweig?

          3. welche kodierung ist auf der seite eingestellt, wo das formular sich befindet?

          4. wie sind die charset-einstellungen der datenbank-tabelle?
          1.
          PHP-Code:
           <head>
            <
          meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
            <
          META NAME="author" CONTENT="">
           ...
            </
          head
          2.Die Backslashes und <br> habe ich rausgenommen. Hatte das Wohl mal aus einer echo ""; heraus genommen.

          Wo finde ich denn die "charset" Einstellungen der Datenbank-tabelle?

          Kommentar


          • #6
            Original geschrieben von Salitor
            1.
            PHP-Code:
             <head>
              <
            meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
              <
            META NAME="author" CONTENT="">
             ...
              </
            head
            Die Angaben in den HTTP Response Headern des Webservers waren gefragt, nicht dein Meta-Kram im HTML-Dokument.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Oh.

              Http Response Headers der Index.php.
              Date: Thu, 30 Mar 2006 13:30:24 GMT CRLF
              Server: Apache/2.0.46 (CentOS) CRLF
              Accept-Ranges: bytes CRLF
              X-Powered-By: PHP/4.3.2 CRLF
              Set-Cookie: GALLERYSID=beede40e632bdcef7e91079dbbb56eed; expires=Mon, 24 Mar 2031 13:30:24 GMT; path=/main/; HttpOnly=1 CRLF
              Set-Cookie: GALLERYSID=6f136e0ac40220f318d3ecffc3bf7a87; expires=Mon, 24 Mar 2031 13:30:24 GMT; path=/main/; HttpOnly=1 CRLF
              Connection: close CRLF
              Transfer-Encoding: chunked CRLF
              Content-Type: text/html; charset=UTF-8
              Das Gästebuch wird dort mit include eingebunden. Die Datei selber hat ISO, aber wie der Besucher darauf zugreift bleibt UTF-8 bestehen.

              Wir löse ich das Problem? Brauche UTF-8 für die Galerie, der Rest benötigt ISO

              Kommentar


              • #8
                ich würde mir mal die Funktion header() anschauen, mit der kannst du vor allen ausgaben den header
                Content-Type: text/html; charset=UTF-8
                ändern, denn dieser ist es, der sagt, dass die Datei UTF-8 ist.
                Wer einen Weisen dumm fragt, wird eine kluge Antwort bekommen. Es ist nur die Frage, ob er sie auch versteht.

                Kommentar


                • #9
                  Original geschrieben von telmich
                  ich würde mir mal die Funktion header() anschauen, mit der kannst du vor allen ausgaben den header
                  Content-Type: text/html; charset=UTF-8
                  ändern, denn dieser ist es, der sagt, dass die Datei UTF-8 ist.
                  ok. Danke

                  Kommentar


                  • #10
                    telmich: wozu? es wird doch schon utf-8 übermittelt.

                    Salitor: wenn du diese zwei bereiche nicht trennen kannst/willst, so kodiere die eingabe des benutzers mittels iconv() von utf-8 nach iso, bevor du sie speicherst.

                    allerdings wüsste ich nicht, warum zwei verschiedene kodierungen auf einer seite nötig sein sollten.

                    Kommentar


                    • #11
                      @penizilin: es stimmt, dass der utf-8 header gesetzt wird. aber wenn es nun mal ISO sein soll muss man diesen überschreiben. Besser ist es natürlich die Daten zu konvertieren, wie du es vorgeschlagen hast.

                      @Salitor: Heißt "OK, danke" "Ja, es klappt jetzt?" oder "Ich weiß nicht was du meinst, aber ich mach mich mal schlau"?
                      Wer einen Weisen dumm fragt, wird eine kluge Antwort bekommen. Es ist nur die Frage, ob er sie auch versteht.

                      Kommentar

                      Lädt...
                      X