2011-05-13 4 views
2

Je retire des commentaires de la base de données pour que ça apparaisse ... comment m'en débarrasser? Est-ce en raison de quoi dans la base de données ou comment je montre, j'ai essayé d'utiliser htmlspecialchars mais ne fonctionne pas.Comment se débarrasser de en utilisant php

S'il vous plaît aider

+3

Je suppose que votre DB délivre un fichier char.set et vos fichiers html sont dans un autre, par ex.ISO8859-1 dans la base de données et UTF-8 comme codage pour la page. Vous devez tous les avoir dans le même encodage ... Habituellement, vous faites en sorte que la base de données utilise l'encodage de votre site Web, et non l'inverse (les clients, c'est-à-dire le public cible, la règle). Optez pour UTF-8 et vous êtes toujours du bon côté - sauf si vous êtes chinois, alors regardez UTF-16 ou UTF-32 :-) UTF est moderne, tous les autres encodages sont "les vestiges de l'histoire informatique". –

Répondre

1

Le problème réside avec le codage de caractères. Si le personnage apparaît bien dans la base de données, mais pas sur la page. Votre page doit être définie sur le même codage de caractères que la base de données. Et vice versa, si votre page qui écrit sur l'encodage des caractères de la base de données ne correspond pas, eh bien ça sort bizarre.

Je règle généralement mon encodage de caractères sur UTF-8 pour tout type de champs de publication, tels que Commentaires/Messages. La plupart des bases de données MySQL par défaut au jeu de caractères latin. Donc, vous devrez modifier que: http://yoonkit.blogspot.com/2006/03/mysql-charset-from-latin1-to-utf8.html

La partie HTML peut être fait avec une étiquette META: <META http-equiv="Content-Type" content="text/html; charset=UTF-8">

ou avec PHP: header('Content-type: text/html; charset=utf-8'); (doit être placé avant toute sortie.)

Espérons que se la balle qui roule pour vous.

+0

vous êtes un génie !!! – swenflea

1

Il est peut-être problème de la façon dont vous stockez les informations contenues dans la base de données. Si l'encodage que vous utilisiez n'acceptait pas les accents (à, ñ, î, ç ...), alors il les stocke en utilisant des symboles bizarres. Il en est de même pour les autres symboles spécifiques à la langue . Il n'y a probablement pas de solution pour ce qui est déjà dans la base de données, mais vous pouvez toujours enregistrer les insertions suivantes en changeant le type d'encodage dans mysql.

Vive

+0

Merci, mon pote;) Je l'ai fait avec [cette] (http://icon-generator.net/) application. – Korcholis

1

qui se produit lorsque vous avez un personnage que votre police ne sait pas comment afficher. Il apparaît différemment dans chaque programme, de nombreux programmes Windows le montrent comme une boîte, Firefox le montre comme une question dans un diamant, d'autres programmes utilisent simplement un point d'interrogation clair. Vous pouvez donc utiliser un système d'affichage plus récent, installer une police manquante (comme s'il s'agit de caractères asiatiques) ou regarder si c'est un ou deux caractères qui le font et juste les remplacer par quelque chose de visible.

-1

Vérifiez votre code pour les erreurs. C'est tout ce qu'on peut vraiment dire étant donné que vous nous avez donné absolument aucun détail sur ce que vous faites.

Les problèmes de codage sont généralement à l'origine de ce problème (convertissez-vous des entiers en caractères?), Donc vous le corrigez en vérifiant si vous convertissez correctement les éléments.

0

Assurez-vous que votre base de données UTF-8 (si elle ne résout pas le problème assurez-vous de spécifier votre jeu de caractères lors de la connexion à la base de données).

Vous pouvez également encoder/décoder avant d'entrer des données dans votre base de données.

Je suggère d'aller avec htmlspecialchars() pour le codage et htmlspecialchars_decode() pour le décodage.

0

Comme d'autres l'ont dit, vérifiez le codage de votre base de données. Vous pouvez essayer d'utiliser utf8_encode() ou iconv() pour convertir votre encodage de caractères.

0

Transmettez-vous votre charset dans mysql_set_charset() avec mysql_connect() ???

Questions connexes