2009-10-01 6 views
1

J'ai du contenu stocké dans une base de données Postgres, maintenant chaque fois que j'appelle le contenu pour qu'il s'affiche en php, je reçois des carrés amusants dans IE et des carrés amusants dans Firefox?Obtenir des carrés drôles dans le navigateur lors de l'affichage du contenu

Exemple ci-dessous

* - March � May 2009 

Comment puis-je supprimer ce?

Je n'ai pas accès au serveur ne peut donc pas régler le codage là, seulement avoir des détails postgres DB et accès FTP pour transférer mes fichiers

+0

duplication possible de [Qu'est-ce que le codage de caractères et pourquoi devrais-je m'en occuper] (http://stackoverflow.com/questions/10611455/what-is-character-encoding-and-why-should-i-bother- with-it) – Raedwald

Répondre

6

Vous devez vous assurer que Postgres, PHP, et votre navigateur tous s'accordent sur l'encodage du contenu, et que vous avez une police appropriée sélectionnée dans votre navigateur. La façon la plus simple de le faire est de choisir UTF8 pour tout.

Je ne connais pas PHP, mais je connais les bases de données et les navigateurs. Vous devez d'abord savoir si la base de données est UTF8. (De psql, je ferais un "\ l" et regarderais l'encodage.) Ensuite, vous devez savoir si PHP supporte UTF8 (je n'ai aucune idée de comment vous faites cela). Ensuite, vous devez voir si ces caractères sont stockés dans la base de données par l'application PHP. Ensuite, vous devez déterminer si le serveur Web signale correctement l'encodage du contenu. (Sur Linux/Unix, j'utiliserais le programme "HEAD" (pas "head") pour voir les en-têtes revenir.) Et ensuite vous devez déterminer si votre navigateur utilise une police qui supporte UTF8. Ou, vous pouvez juste vous assurer que vous ne stockez que ASCII et oubliez le reste du monde existe. Non recommandé.

+0

Si je n'ai pas accès au serveur DB, puis-je faire quelque chose dans mon code pour résoudre ce problème? – Roland

2

Vous avez des problèmes d'encodage. Assurez-vous que l'encodage est défini dans la base de données, dans le balisage html et assurez-vous que les fichiers eux-mêmes sont enregistrés dans un encodage approprié.

4

Mauvais jeu de caractères quelque part. Les caractères peuvent être mal stockés dans la base de données, ou vous avez mal charset dans les balises META sur la page (essayez de changer manuellement charset dans le navigateur), ou il pourrait y avoir un problème avec un mauvais encodage lorsque la page communique avec la base de données. Consultez cette page http://www.postgresql.org/docs/8.2/static/multibyte.html pour plus d'informations. Essayez d'avoir même encodage sur tous les lieux, de préférence UTF-8

Questions connexes