Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

MySql und €-Zeichen

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
euroexchange.de
PostRank 6
PostRank 6
Beiträge: 471
Registriert: 02.06.2007, 13:49

Beitrag von euroexchange.de » 01.03.2011, 04:00

Guten Morgen @all.

Ich sitze an der Erstellung eines Markplatzes für Anzeigen in unterschiedlichen Formaten - vereint auf einer Plattform.

Die MySql-Datenbank läuft im UTF-8 Format und auch die Seite läuft auf UTF-8.

Bei der Zahlung über den integrierten PayPal-Gateway sowie in Emailbenachrichtigungen, wird das €-Zeichen nicht erkannt und durch die Zeichenkette € ersetzt. Auf der Seite wird es aber problemlos dargestellt.

Schaue ich mir die Datenbank an so steht auch dort € als Eintrag für das €-Zeichen. Gebe ich dort € selber ein, so wird auf den Seiten nurnoch eine Raute mit Fragezeichen angezeigt.

Bereits erfolglos versucht habe ich, die Kollation der MySql-DB auf UTF-8_Swedish_ci umzustellen, weil hier ja Sonderzeichen reichlich enthalten sind.

Vielleicht habe ich auf Grund der Uhrzeit einfach ein Brett vorm Kopf, aber, hat jemand eine Idee woran das liegen könnte ?

Es handelt sich um:
https://www.allfive.de

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 01.03.2011, 07:28

Hat sich das Problem mittlerweile behoben, oder wo kann man das sehen? Alle € die ich finden konnte waren richtig angezeigt.

das "€" kommt normalerweise, wenn ein UTF-8-€ als ISO angezeigt wird.

Pauschal würde ich da einfach mal sagen, dass irgendwo noch der falsche Zeichensatz besteht, also HTML, Files, DB-Server, DB-Connect, PHPMyAdmin-Oberfläche, Kollation oder oder oder.

Allerdings bin ich durchaus ein wenig verwirrt....

Email falsch
DB falsch
Webseite richtig

Das mit der Email kenne ich, das Problem habe ich auch und könnte es bisher noch nicht lösen. Einige Mailer funktionieren, andere nicht. Allerdings sollte das € dann auch in der DB richtig stehen.

Mal so etwas zusammengesponnen. Da das "€" in der DB kommt gehe ich mal davon aus, dass der PHPmyAdmin die Daten als ISO anzeigt. Der würde es dann falsch machen, die Webseite richtig. Trägt man dann im PHPMY die Daten selbst ein, dann stehen die da richtig drinnen (als ISO), auf der Webseite aber falsch, da UTF-8. Bin mit da nicht sicher, aber die die Richtung würde ich persönlich zuerst mal suchen.

Lord Lommel
PostRank 10
PostRank 10
Beiträge: 3227
Registriert: 18.02.2008, 02:43
Wohnort: Halle / Saale

Beitrag von Lord Lommel » 01.03.2011, 09:13

UTF-8 hat immer alle UTF-8-Zeichen. Das schwedisch hat nur was mit der eigentlichen Kodierung zu tun. Wenn du ne deutsche Seite hast, stellst du auf deutsch und die DB braucht etwas weniger Platz. Ich nutze immer unicode, daß der beste Kompromiß für mehrsprachige Systeme.

Ich vermute, daß du entweder irgendwo in der Kette der Datenübertragung eine Stelle hast, wo kein UTF-8 verwendet oder (und das vermute ich, weil man das schnell übersieht) daß du doppelt umwandelst. Wenn du explizit ASCII in UTF-8 und der Server so eingestellt, daß er das auch nochmal macht, dann werden die UTF-8-Zeichen, die mehrere Bits belegen, als mehrere ASCII-Zeichen gesehen und umgewandelt. Das bringt dann natürlich Probleme und oft sieht es wie bei dir oben aus.

Igotcha
PostRank 4
PostRank 4
Beiträge: 122
Registriert: 23.04.2010, 11:58

Beitrag von Igotcha » 01.03.2011, 10:39

bei dem Zusammenspiel PHP, HTML und MySQL muss man jede einzelne Schnittstelle (nicht nur die Daten selbst) UTF-8 konform gestalten - nur mal so am Rande.

Du hast in MySQL die richtige Collation?
Du hast Deine PHP- und HTML-Seiten mit Codierung UTF-8 erstellt?

Dann setzt mal da, wo Du Deinen Connection-String aufbaust sowas rein (wichtig ist die letzte Zeile):

Code: Alles auswählen

<?php
	$conn = mysql_connect&#40;'localhost', 'root','xxx'&#41; or die&#40;mysql_error&#40;&#41;&#41;;
	$select = mysql_select_db&#40;"xxx",$conn&#41; or die&#40;mysql_error&#40;&#41;&#41;;
	mysql_query&#40; "SET NAMES 'utf8'", $conn &#41;;
?>
Grüße Igotcha
https://BBQTop.de - Barbecue Gewürze, Rubs und Zubehör | ArticleSpinningWizard 2 Deutscher Text Spinner mit Online Wörterbuch | SCRAPEBOX Master Guide (deutsch)

euroexchange.de
PostRank 6
PostRank 6
Beiträge: 471
Registriert: 02.06.2007, 13:49

Beitrag von euroexchange.de » 01.03.2011, 15:54

Erst einmal vielen Dank für Eure Zeit und Mühen.

Was den PayPal-Gateway angeht, so war es ein Eintragungsproblem des Sciptes in die DB.

Da steht dann, wenn das €-Zeichen ausgewählt ist trage EUR ins Feld Währung ein. Da er das €-Zeichen aber mit "€" in die DB schreibt, hat die obige Bedingung nicht gegriffen. So blieb die Währungseinstellung unverändert auf dem Default-Wert $.

Ich habe das jetzt mit dem Workarrount gelöst und in das Feld Währung von Hand "EUR" eingegeben. Jetzt funktioniert auch der PayPal-Gateway mit EUR als Währung.

Das generelle Problem mit "€" als €-Zeichen in der DB sowie in den Emails besteht aber nach wie vor.

Ich plädiere für einen einzigen, neuen Zeichensatz:

ASoW_1000 (All Signs of World)

Danke nochmal bis hierher :-)

@synonym
Ja, auf der Webseite werden alle €-Zeichen richtig dargestellt obwohl in der DB das "€" für € eingetragen ist. Mir scheint es fast so, als ob das besagte Zeichen so auch verwendbar ist, mmhhhh ;-(

Vielleicht ist das ja gar kein Fehler sondern muß so sein ?

Lord Lommel
PostRank 10
PostRank 10
Beiträge: 3227
Registriert: 18.02.2008, 02:43
Wohnort: Halle / Saale

Beitrag von Lord Lommel » 01.03.2011, 15:58

Na das was du willst ist doch grade Unicode.

nerd
PostRank 10
PostRank 10
Beiträge: 4023
Registriert: 15.02.2005, 04:02

Beitrag von nerd » 01.03.2011, 20:16

Igotcha hat geschrieben:

Code: Alles auswählen

<?php
	$conn = mysql_connect&#40;'localhost', 'root','xxx'&#41; or die&#40;mysql_error&#40;&#41;&#41;;
	$select = mysql_select_db&#40;"xxx",$conn&#41; or die&#40;mysql_error&#40;&#41;&#41;;
	mysql_query&#40; "SET NAMES 'utf8'", $conn &#41;;
?>
wollte ich auch vorschlagen. "set names..." als erster befehl nach verbindungsaufbau wird meistens vergessen :)

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag