Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Leidige Sonderzeichen in eml

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Leidige Sonderzeichen in eml

    Nachdem ich den Inhalt mit allen encodes und decodes known to PHP durchgetestet habe und die vermurksten UTT-8 Sonderzeichen nicht loswerde...

    Laut Sypheed Mail utf-8
    PHP in utf-8 gespeichert
    HTML charset=utf-8

    € wird so angezeigt =E2=82=AC

    PHP-Code:
    $mails file_get_contents("13/1.eml");
    $chars json_decode('{"Ä" : "=C3=84", "Ö" : "=C3=96","Ü" : "=C3=9C","ß" : "=C3=9F","ä" : "=C3=A4","ö" : "=C3=B6","ü" : "=C3=BC","EUR" : "=E2=82=AC"}');
     foreach (
    $chars as $key => $value)
    {   
        
        
    $mails preg_replace($value $key$mails);   
    }
    /* Fehlerausgabe:

    Warning:  preg_replace() [function.preg-replace]: Unknown modifier '8' in C:\AppServ\www\01sprd\mails.php on line 16

    Warning:  preg_replace() [function.preg-replace]: Unknown modifier '9' in C:\AppServ\www\01sprd\mails.php on line 16

    Warning:  preg_replace() [function.preg-replace]: Unknown modifier '9' in C:\AppServ\www\01sprd\mails.php on line 16

    Warning:  preg_replace() [function.preg-replace]: Unknown modifier '9' in C:\AppServ\www\01sprd\mails.php on line 16

    Warning:  preg_replace() [function.preg-replace]: Unknown modifier '4' in C:\AppServ\www\01sprd\mails.php on line 16

    Warning:  preg_replace() [function.preg-replace]: Unknown modifier 'B' in C:\AppServ\www\01sprd\mails.php on line 16

    Warning:  preg_replace() [function.preg-replace]: Unknown modifier 'B' in C:\AppServ\www\01sprd\mails.php on line 16

    Warning:  preg_replace() [function.preg-replace]: Unknown modifier '8' in C:\AppServ\www\01sprd\mails.php on line 16

    string(0) ""

    */ 
    Wie bringe ich preg_replace bei, dass die $value jeweils ein String ohne Modifier ist?
    ______
    Templaterie Blog

  • #2
    Nutze konsequent UTF-8. Kurze Checkliste für UTF-8 und Umlautprobleme:
    - HTTP Header Content-Type mit UTF-8
    - in HTML-Seiten <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    oder <meta charset="utf-8"><!-- HTML5 -->
    sollte idealerweise als Erstes, gleich nach dem einleitenden head-Element erfolgen
    - PHP und HTML/Template Dateien im Editor als "UTF-8 ohne BOM" speichern
    - Formulardaten in UTF-8 übergeben (ggf. mit accept-charset="utf-8" sicherstellen)
    - Datenbank Zeichensatz UTF-8, Tabellenkollationen utf8_general_ci o.Ä.
    - Datenbankverbindung von PHP zu MySQL auf UTF-8 stellen
    - Daten aus Fremdquellen müssen in UTF-8 überführt werden, wenn sie nicht als UTF-8 vorliegen
    utf8_encode: ISO-8859-1-Zeichenkette -> UTF-8
    - htmlentities codierung mitgeben, Beispiel: htmlentities($info,ENT_NOQUOTES,'UTF-8');
    - für deutsche Monatsnamen wie März ist u.U. setlocale(LC_TIME, "de_DE.utf8") notwendig
    [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

    Kommentar


    • #3
      € wird so angezeigt =E2=82=AC

      PHP-Code:
      $mails file_get_contents("13/1.eml");
      $chars json_decode('{"Ä" : "=C3=84", "Ö" : "=C3=96","Ü" : "=C3=9C","ß" : "=C3=9F","ä" : "=C3=A4","ö" : "=C3=B6","ü" : "=C3=BC","EUR" : "=E2=82=AC"}');
       foreach (
      $chars as $key => $value)
      {   
          
          
      $mails preg_replace(/$value/ , $key$mails);   

      Und hab's.

      =E2=82=AC wird zu EUR
      ______
      Templaterie Blog

      Kommentar


      • #4
        Was solln das werden? Wenn du Mails verschicken willst nimm ne Mailer-Klasse, die regelt alles für dich.
        [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

        Kommentar


        • #5
          Bin jetzt zu faul, das BOM in PSPAD herauszufinden.

          Zitat von tkausl Beitrag anzeigen
          - PHP und HTML/Template Dateien im Editor als "UTF-8 ohne BOM" speichern
          Das kann ich nicht mit Sicherheit sagen, aber sonst CHECK.
          Ich war den utf-8 kram als erstes erfolglos durch. Dann folgte dumpfes try&error mit allen encodes und decodes, die ich finden konnte.

          Und schließlich die Kapitulation mit preg_replace
          ______
          Templaterie Blog

          Kommentar


          • #6
            Zitat von tkausl Beitrag anzeigen
            Was solln das werden? Wenn du Mails verschicken willst nimm ne Mailer-Klasse, die regelt alles für dich.
            Ich will nix verschicken. Ich will den Inhalt eines Mailordners mit einer Tabelle abgleichen und Bestellnummern zuordnen und am Ende die Mehrwertsteuer-Beträge ermitteln.
            ______
            Templaterie Blog

            Kommentar


            • #7
              Das ist http://en.wikipedia.org/wiki/Quoted-printable , kein Zeichensatzproblem. Allenfalls ein Multibyteproblem vor dem QP-Encoding.


              [man]quoted_printable_decode[/man]

              It's as simple as that. Ergo: Lern' Deinen Scheiß, wenn Du schon mit Daten auf diesem Level arbeitest.
              [COLOR="#F5F5FF"]--[/COLOR]
              [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
              [COLOR="#F5F5FF"]
              --[/COLOR]

              Kommentar


              • #8
                Wozu der krampf ?

                PHP-Code:
                $string "Hallo ich bin quoted-printable string mit sonderzeichen: =C3=84 =C3=96 =C3=9C, =C3=84=C3=96=C3=9C";

                echo 
                quoted_printable_decode($string); 
                Code:
                Hallo ich bin quoted-printable string mit sonderzeichen: Ä Ö Ü, ÄÖÜ
                QPs decodieren kann PHP schon seit PHP 4.
                [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

                Kommentar


                • #9
                  Danke. Wobei dafür, dass das hier der Einsteiger-Bereich ist, ist der Ton ein wenig rauh.
                  ______
                  Templaterie Blog

                  Kommentar

                  Lädt...
                  X