Umlaute in Codes umwandeln

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

  • Umlaute in Codes umwandeln

    Hallo
    Ich habe bei meinem Server folgendes Problem:
    Er stellt Umlaute immer als komische Zeichen dar.
    Bei normalen HTML-Codes ist dies leicht zu umgehen mit solchen Codes wie z.B. ä für ä.
    Bei meinem auf PHP programmierten Gästebuch funktioniert das nicht:
    PHP-Code:
    $text str_replace ("ä""ä"$text);
    $text str_replace ("Ä""¨"$text);
    $text str_replace ("ö""ö"$text);
    $text str_replace ("Ö""Ö"$text);
    $text str_replace ("ü""ü"$text);
    $text str_replace ("Ü""Ü"$text);
    $text str_replace ("ß""ß"$text); 
    hab ich in die Datei geschrieben, die das Gästebuch-Formular verarbeitet (wobei $text der vom besucher eingegebene Text ist).
    Als ich das nächste mal die datei aufrief, standen in dem Code anstatt der umlaute wieder komische Zeichen.
    Was kann ich da machen?
    Es ist nicht deine Schuld, dass die Welt ist, wie sie ist,
    Es wär nur deine Schuld, wenn sie so bleibt

  • #2
    diese Funktion verwenden

    http://www.php.net/manual/de/function.htmlentities.php

    mfg
    wdsl
    visit me: a-bout.de

    Kommentar


    • #3
      htmlentities ist das, was du suchst

      Kommentar


      • #4
        Funzt. Danke für die schnellen antworten
        Es ist nicht deine Schuld, dass die Welt ist, wie sie ist,
        Es wär nur deine Schuld, wenn sie so bleibt

        Kommentar


        • #5
          Hallo,

          Ich habe auch das Problem mit falscher Darstellung der deutschen Umlaute in eMails.

          Ich lege einen mehrzeiligen Text in einer Variablen ab. In diesem Text sind auch Umlaute enthalten. Wenn ich die Umlaute im Text auschreibe, wie man es schreibt, dann werden die Umlaute beim Empfänger in wirres Zeichen umgewandelt.

          Wenn ich aber die Umlaute in HTML-Codes
          PHP-Code:
          &Uuml
          schreibe , dann erscheint genau diesen Code im Text beim Empfänger.

          Nun habe ich durch diesen Beitrag gehofft, die Lösung in der function 'htmlentities()' gefunden zu haben, leider war es nicht so.

          Die 'htmlentities()' macht nicht dsa was sie machen sollte, oder das was behauptet wird, zu machen.

          Mein Besipie:

          PHP-Code:
          <?php
          //Mailversand

          $empfaenger="empfaenger@gmx.de";
          $betreff="Umlaute Darstellen";
          $absender="absender@gmx.de";
          $nachricht1="Die Umlaute ä - Ä, ö - Ö, ü - Ü und das ß werden übermittelt";
          $nachricht2=htmlentities($nachricht1)'

          @mail($empfaenger,$betreff,$nachricht2,$absender);

          //ENDE
          ?>
          Nun wird der Text beim Empänger so angezeigt:

          PHP-Code:
          Die Umlaute &auml; - &Auml;, &ouml; - &Ouml;, &uuml; - &Uumlund das &szligwerden &uuml;bermittelt
          anstatt, dass sie als Umlaute angezeigt werden.

          Bitte hilft mir vielleicht jemand und sagt mir eine plausible Lösung?

          Ich will keine Diskussion über Theorie und technisches Detail, sondern einfach eine Funktion oder eine Weg, wie man die Umlaute als Umlaute darstellt beim Empfänger eines eMails.

          Danke an alle

          Kommentar


          • #6
            woher weiß denn dein mail-client, dass es eine html- und keine plaintext-nachricht ist?

            stichwort header?

            Kommentar


            • #7
              ich würde sagen, das hört sich beides nach problemen mit der zeichencodierung an.

              htmlentities braucht man garnicht, wenn man auf der seite mit dem gästebuchformular den charset ordentlich angibt, z.b.
              <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> oder auch UTF-8
              und dann natürlich auch auf der seite, auf der die einträge angezeigt werden, ansonsten sucht sich der browser des users einen aus, und wenn der nicht übereinstimmt, gibt's halt buchstabensuppe.



              zu der sache mit der mail:
              htmlentities ist genau das falsche, da du wahrscheinlich keine html-mail verschicken willst.
              ich würde aber auch ein problem beim charset vermuten.

              überprüfe mal, in welchem set dein texteditor deine dateien abspeichert und dann, in welchem dein mailprogramm die mails anzeigt...

              Kommentar


              • #8
                Original geschrieben von pixelpope
                htmlentities braucht man garnicht, wenn man auf der seite mit dem gästebuchformular den charset ordentlich angibt, z.b.
                <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> oder auch UTF-8
                und dann natürlich auch auf der seite, auf der die einträge angezeigt werden
                natürlich "brauchst" du htmlentities oder zumindest htmlspecialchars (oder eine entsprechung), wenn du die daten auch in einer HTML-seite anzeigen willst. HTML-eigene sonderzeichen sind immer zu kodieren, wenn sie eben nicht ihre sonderzeichenbedeutung haben sollen.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Im Header-Bereich meiner Mailversand-Seite steht folgendes:

                  PHP-Code:
                  <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"
                  Ich nehme an, das ist der richtige Charset.
                  Zuletzt geändert von Armadi; 22.03.2005, 21:42.

                  Kommentar

                  Lädt...
                  X