![]() |
[PHP/MySQL] Euro-Zeichen
Morgen.
Ich hab gerade ein Problem in PHP. Ich bekomme es einfach nicht hin, einen Text mit Euro-Zeichen aus der Datenbank zu holen und per PHP auszugeben, ohne dass dabei irgendein Konvertierungs-/Darstellungsfehler auftritt. Ich hab schon diverse Zeichensätze durchprobiert, mit iconv hin und her konvertiert und sogar alle PHP-Skripte, Datenbankverbindung, Tabellen und Spalten auf UTF-8 gestellt, was allerdings zu einem grauenhaften Ergebnis geführt hat (Die PHP-Skripte haben verrückt gespielt, weil sie mit dem BOM am Dateianfang nicht zurechtkamen.) Wie kann ich dafür sorgen, dass ein vom Benutzer z.B. in eine textarea eingegebenes Euro-Zeichen sauber in die Datenbank und zur Darstellung wieder raus kommt? |
Re: [PHP/MySQL] Euro-Zeichen
Hast du schon probiert das € durch den HTML Code für Euro zu ersetzen um diesen in der DB abzuspeichern...
//edit: euro = € |
Re: [PHP/MySQL] Euro-Zeichen
UTF-8 wäre schon eine möglichkeit, aber was willst du hier mit einem BOM? Ist vollkommmen überflüssig.
|
Re: [PHP/MySQL] Euro-Zeichen
Hi 3_of_8,
es gibt dafür spezielle Funktionen, die diese Sonderzeichen ersetzen. ![]() |
Re: [PHP/MySQL] Euro-Zeichen
Ich würd dir generell raten, alle Sonderzeichen in einem Text durch ein Skript in die HTML-Codierung zu formatieren.
|
Re: [PHP/MySQL] Euro-Zeichen
Das Problem ist ja, dass der Benutzer das ganze eingeben soll, z.B. per textarea. Ich könnte jetzt schon bei der Eingabe das € durch € ersetzen, aber dann schlägt mein Parser zu und maskiert die Zeichen, wenn sie wieder ausgelesen werden sollen. htmlspecialchars() benutzt übrigens ISO-8859-1, und da ist kein Euro-Zeichen drin, also wird es auch nicht maskiert. Und selbst wenn, dann wäre es schon zu spät, weil nämlich beim Wiederauslesen aus der Datenbank das Zeichen schon verunstaltet ist.
@Bernhard_Geyer: Das BOM wird beim Abspeichern des Skriptes als UTF-8 automatisch hinzugefügt. Und, wie gesagt, mit UTF-8 hats irgendwie auch nicht geklappt, ich habe alles umgestellt und trotzdem ist ein komplett anderes Zeichen angekommen. |
Re: [PHP/MySQL] Euro-Zeichen
Zeig doch mal ein paar Beispiel was bei Sonderzeichen in der DB ankommt und bei dir wieder in PHP. Evtl. wird ein paar mal Umcodierung zu oft angewandt.
|
Re: [PHP/MySQL] Euro-Zeichen
Du sollst ja auch nur für die Ausgabe der Zeichen die Konvertierung durchführen. Die Eingabe bleibt unangetastet in der Datenbank, das ist zumindest immer meine Empfehlung. Wenn du Unicode benutzt, sollte die PHP-Erweiterung "mbstring" aktivert sein. Wie sieht es bei dir mit der Kodierung "Latin1" aus?
Ansonsten poste doch mal deine Konfiguration: PHP-Version, SQL-Version, Frontends, etc. |
Re: [PHP/MySQL] Euro-Zeichen
PHP: 5.2.4
MySQL: 5.0.51 Frontends: PHPMyAdmin, Version unbekannt, die PHP-Skripts der Webseite sind von mir MySQL-Verbindungs-Zeichensatz: utf-8 MySQL-Zeichensatz: utf-8 (Per PHPMyAdmin kann ich ein €-Zeichen einfügen und wieder auslesen) Charset der HTML-Seite: utf-8 (€-Zeichen wird durch ? ersetzt, bei iso-8859-15 das gleiche) Achja, und, mbstring ist aktiviert. |
Re: [PHP/MySQL] Euro-Zeichen
moin,
wenn es mit phpmyadmin funktioniert, wird dein Eingabe-Formular einen Fehler verursachen. Vielleicht hast du einfach nur eine falsche Post-Methode für dein Formular gewählt. Poste mal dein Formular und den Insert-Teil. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz