Conversion pour utf-8

Petit nouveau ! | 5 Messages

12 août 2005, 08:00

Bonjour,

Je gère un site multilingue, la plupart des langues requérant un affichage en ISO-8859-1, mais également certaines en utf-8 (selon la langue, les entêtes de la page html seront différents).

Problème : mon livre d'or est commun à toutes les langues. Quand quelqu'un enregistre des caractères spéciaux dedans (alphabets vietnamien, est-européen, etc.), ils sont automatiquements convertis en code html (&#xxxx) et ressortent parfaitement en ISO-8859-1 et en UTF-8. Toutefois, concernant les caractères "moyennement spéciaux" (accents aigus, etc.), si la page est en utf-8, la conversion se passe mal et j'ai des tas de points d'interrogation à la place.

Ma table dans la base de données que j'utilise est codée en latin1_swedish_ci.

Dois-je effectuer une conversion par une fonction php quelconque lors de l'affichage des informations contenues dans la bdd ?
Ou vaut-il mieux faire des remplacements de tous les caractères "moyennement spéciaux" par leur code html avant l'entrée dans la base de données ?

Merci d'avance pour votre réponse,

Étienne

Mammouth du PHP | 19672 Messages

12 août 2005, 08:08

Je dirais que dans la mesure où tu dois négocier avec des alphabets non latins, le mieux serait de tout avoir en utf-8 y compris la base de données: les mélanges sont en général un casse-tête pour beaucoup de monde, moi inclus.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 1029 Messages

12 août 2005, 09:18

Bonjour, moi j'utilise la fonction
utf8_decode()
L'expérience est la somme de toutes nos erreurs.