mysql_real_escape_string et problème apostrophes
-
11-10-2019 - |
Question
donc je l'ai utilisé mysql_real_escape_string pour insérer des données dans ma base de données ... mais quand je le fais qu'il remplace tous avec le symbole apostrophes â € ™
au lieu de l'écran il est, il est l'affichage câ € ™ .......
est-il possible de reconvertir les â € ™ est en apostrophes quand j'ai lu retour de la base de données?
La solution
Ceci est un codage de caractères problème d'une certaine façon.
Parce que dans UTF-8, ’
(U + 2019) est codé avec 0xE28099. Et qui représente les caractères â
(0xE2), €
(0x80) et ™
(0x99) Windows- 1252 .
Il semble donc que vous avez juste oublié de préciser votre personnage de sortie coder correctement de telle sorte que le navigateur utilise son caractère par défaut encodage Windows 1252 à la place.
Autres conseils
mysql_set_charset
UTF-8 dans votre PHP.
Assurez-vous que la base de données et de l'application utilisent le même codage de caractères.
En binaire, '
est identique en valeur à ’
, vous devez vous assurer le encoding est le même.
Dans votre application PHP, vous pouvez spécifier les deux lignes suivantes.
define(‘DB_CHARSET’, ‘utf8′);
define(‘DB_COLLATE’, ”);
Cela permet de régler l'application à utiliser le jeu de caractères UTF-8, vous devez vous assurer de la collation correspond à la base de données, votre problème disparaîtra.
Vous pouvez changer le jeu programatically de caractères de base de données avec la fonction mysql_set_charset
.