Ankündigung

Einklappen
Keine Ankündigung bisher.

Euro Symbol als UTF-8 speichern

Einklappen

Neue Werbung 2019

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

  • Euro Symbol als UTF-8 speichern

    Hallo zusammen,

    Ich habe folgendes Problem: meine Eingabeseiten und meine Datenbank sind UTF-8 und wenn ich versuche, ein Euro-Zeichen zu speichern bzw. auszulesen, funktioniert das leider nicht mit utf8_encode oder utf8_decode.

    Im Internet habe ich gelesen, dass es das Eurozeichen in UTF-8 wohl nicht gibt, konnte aber keine brauchbare Lösung finden außer den Zeichensatz zu ändern, was ich eigentlich nicht machen will, da ich mir ansonsten erfahrungsgemäß mit Umlauten jede Menge Stress einhandele.

    Gibt es noch eine andere Lösung, wie man das Euro-Symbol ohne großen Aufwand unter UTF-8 speichern kann?
    Bin für Hinweise dankbar!

    Viele Grüße
    Frank

  • #2
    €

    Kommentar


    • #3
      Wozu überhaupt noch utf8_encode / utf8_decode?

      Zitat von Crazynet Beitrag anzeigen
      €
      Das ist eine HTML-Entität und mit utf8 auch nicht notwendig.
      [SIZE="1"]Atwood's Law: any application that can be written in JavaScript, will eventually be written in JavaScript.[/SIZE]

      Kommentar


      • #4
        Ich würde da mal diskret auf RTFM hinweisen. Wenn alles, wie Du sagst utf-8 ist brauchst Du keine der beiden Funktionen.

        Klar ist € bestandteil von utf-8

        Kommentar


        • #5
          Ergänzend dieser Link hier aus der Wissenssammlung: UTF-8 und die seltsamen Zeichen

          Wenn du konsequent mit UTF-8 arbeitest, kannst du € wie jeden anderen Buchstaben benutzen:
          PHP-Code:
          $euro "€";

          //der Test sollte bool(true) ausgeben
          var_dump($euro === "\xe2\x82\xac"); 
          Beispiel in der Sandbox

          Diese Debug-Klasse liefert :
          PHP-Code:
          $euro "€";

          debug::write($euro); 
          [01.04.2018 10:50:35,015](386k/411k) Debug::write ...
          0 string(3) UTF-8mb3 "€"

          Kommentar


          • #6
            Zitat von frasch1303 Beitrag anzeigen
            ...meine Eingabeseiten und meine Datenbank sind UTF-8 und wenn ich versuche, ein Euro-Zeichen zu speichern bzw. auszulesen, funktioniert das leider nicht
            Wenn dem so ist, wie du schreibst, dann hast du wohl bei der Verbindung zur DB nicht den Zeichensatz berücksichtigt.
            mit PDO
            PHP-Code:
            $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8"$user$pass); 
            mit mysqli
            PHP-Code:
            $mysqli = new mysqli($host$user$pass$dbname);
            $mysqli->set_charset("utf8"
            Siehe http://php.net/manual/de/mysqli.set-charset.php

            Zitat von frasch1303 Beitrag anzeigen
            Im Internet habe ich gelesen, dass es das Eurozeichen in UTF-8 wohl nicht gibt,
            Wo liest man so was?.
            Ein mal in Google eingegeben kommt man auf diese Seite:
            https://de.wikipedia.org/wiki/Unicod...4hrungszeichen
            oder auch
            https://de.wikipedia.org/wiki/Eurozeichen#Tastatur

            Kommentar


            • #7
              Zitat von protestix Beitrag anzeigen
              Wenn dem so ist, wie du schreibst, dann hast du wohl bei der Verbindung zur DB nicht den Zeichensatz berücksichtigt.
              mit PDO
              PHP-Code:
              $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8"$user$pass); 
              Oha, und ich wundere mich seit 10 Jahren warum ich solche Probleme mit Umlauten hab.
              Hab das jetzt entsprechend geändert und alle Speicherroutinen angepasst, jetzt läuft alles viel sauberer und es klappt auch mit dem Euro-Zeichen.

              Vielen Dank für den Hinweis!

              Kommentar

              Lädt...
              X