Umlaute in Codes umwandeln

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

    Comment


    • #3
      htmlentities ist das, was du suchst

      Comment


      • #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

        Comment


        • #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

          Comment


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

            stichwort header?

            Comment


            • #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...

              Comment


              • #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.

                Comment


                • #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.
                  Last edited by Armadi; 22-03-2005, 21:42.

                  Comment

                  Working...
                  X