mysql_real_escape_string und Apostroph Problem
-
11-10-2019 - |
Frage
so ich habe mysql_real_escape_string unter Verwendung von Daten in der Datenbank einfügen ... aber dann, wenn ich, dass sie alle Apostrophe mit dem Symbol ersetzt â € ™
so statt Anzeige es ist, ist es die Anzeige itâ € ™ s .......
ist es eine Möglichkeit, jene â € ™ s in Apostrophe zurückzuverwandeln, wenn ich wieder aus der Datenbank gelesen?
Lösung
Dies ist einige Zeichencodierung Problem in gewisser Weise.
Weil in UTF-8, ’
(U + 2019) mit 0xE28099 kodiert. Und das stellt die Zeichen â
(0xE2), €
(0x80) und ™
(0x99) in Windows- 1252 .
So scheint es, dass Sie gerade zu vergessen Ihre Ausgabezeichen angeben richtig kodiert so dass der Browser statt Kodierung Windows-1252 seine Standardzeichen verwendet.
Andere Tipps
mysql_set_charset
auf UTF-8 in der PHP.
Stellen Sie sicher, Ihre Datenbank und Anwendung ist die gleiche Zeichenkodierung verwendet wird.
In binär, '
ist identisch im Wert ’
, so dass Sie die Codierung, um sicherzustellen, müssen festgelegt ist das gleiche.
In Ihrer PHP-Anwendung, können Sie dies mit den folgenden zwei Zeilen angegeben werden.
define(‘DB_CHARSET’, ‘utf8′);
define(‘DB_COLLATE’, ”);
Dies stellt die Anwendung auf die Verwendung von UTF-8-Zeichensatz, mit dem Sie Ihre Matches Datenbank des Sortierungs gewährleisten müssen, dann ist Ihr Problem weggeht.
Sie können programmatisch den Datenbank-Zeichensatz mit der mysql_set_charset
Funktion ändern.