Sonderzeichen in Datenbanken Texten richtig darstellen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
code
dargestellt gruss
datenbank
dokument
editor
erwartete ausgabe
fragezeichen
header
helfen
kodierung
problem
sonderzeichen
text
tun
umlaut
url
verbindung
webseite
wirkliche ausgabe
zeichen
-
Hallo,
Ich habe ein Riesen Problem und zwar werden auf meiner Webseite Texte die aus Datenbanken kommen nicht richtig angezeigt.
Sprich die Sonderzeichen werden falsch dargestellt.
Was genau kann ich tun damit die Sonderzeichen richtig dargestellt werden
Link:
http://claya.de/index.php?akt=bonusaktionen
Das Problem habe ich auch erst seit demnach bei Lima die Datenbanken und den webspace habe.
Ich hoffe es kann mir eine helfen -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Das Problem lässt sich für gewöhnlich recht einfach lösen, nämlich indem du für die Datenbank den selben Zeichensatz verwendest wie für die Webseite. Auf der Webseite verwendest du "windows-1252". Ich gehe davon aus, dass du in der Datenbank UTF-8 verwendest.
Also verhält sich dein Fall wohl umgekehrt zu unserem Hilfeartikel hier -
Ok Danke ich teste mal ob es funktioniert
-
Hallo Orena,
Variante A
Wenn ein Dokument als Unicode (UTF-8) abgespeichert wurde, jedoch als ISO 8859-1 interpretiert wird, geschieht folgendes:
erwartete Ausgabe: ä ö ü
wirkliche Ausgabe: ä ö ü
D.h. im Editor (z.B. Notepad++) steht bei Kodierung zwar "UTF 8 ohne BOM", aber im Sourcecode s des Dokuments steht an mindestens einer Stelle ein anderes Format, wie z.B.
• <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
• <?php
header('Content-Type: text/html; charset=ISO-8859-1');
?>
• <form action='$link' method='post' accept-charset='ISO-8859-1'>
Das ä wurde binär gesehen als 11000011 10100100 gespeichert. Die beiden Bytes gehören laut UTF-8 zusammen, werden in ISO 8859-1 allerdings auseinander genommen. Folglich wird aus 11000011 ein à und aus 10100100 ein ¤-Zeichen.
Variante B
Wenn die Umlaute als Fragezeichen dargestellt werden, dann wird ein als ISO 8859-1 kodiertes Dokument als UTF-8 interpretiert,
d.h. im Editor (z.B. Notepad++) steht bei Kodierung nicht "UTF 8 ohne BOM"!
erwartete Ausgabe: ä ö ü
wirkliche Ausgabe: � � �
Mit anderen Worten wurde hier ein ä als 11100100 gespeichert. In UTF-8 ist dieses Byte jedoch ungültig, wird also nicht angezeigt oder ignoriert, bzw. als ? oder � dargestellt.
Gruss Dunkeltuten
-
Hallo,
bei mir würde Variante A zu´treffen.
Leider konnte ich bis jetzt das Problem noch nicht lösen.
Was genau muss ich den jetzt tun damit diese Umlaute und Sonderzeichen richtig dargestellt werden.
´Das Problem ist das nur Texte aus der Datenbank falsch dargestellt werden und ''normae Texte '' richtig dargestellt werde.
Wäre cool wen mir einer helfen könnte.
mfg -
In der Datenbank steht es richtig? Oder hast du da schon die komischen Zeichen?
Sind die Texte irgendwann fix eingepflegt oder hast du sie über deine Webseite erfasst und in die DB geschrieben?
Ich bin mir nicht mehr ganz sicher wie das Problem bei mir war aber es hat geholfen, nachdem die Verbindung zur DB aufgebaut war der Verbindung das charset vorzugeben.
sieht dann bei mir etwa so aus:
$db = mysqli_connect($db_host, $db_user, $db_pw, $db_name); if(!$db) { exit("Verbindungsfehler: ".mysqli_connect_error()); } else { mysqli_set_charset($db,'utf8'); }
Beitrag zuletzt geändert: 7.11.2016 18:26:20 von airfield-manager -
In die DB werde ich gleich mal schauen.
Wen ich das jetzt richtig verstanden habe müsste eig. In der DB und im Header meiner Seite immer UTF-8 angeben sein damit alle Zeichen auch erkannt werden.
Ich schätze aber mal in der DB stimmt etwas nicht weil ja nur die Texte aus der DB falsch dargestellt werden.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage