Page 1 sur 1
interclassement en "latin1_swedish_ci" ou "ut
Posté : 08 févr. 2007, 11:46
par Invité
Bonjour
On m'a dit il y a pas longtemps que utf-8 est plus sûr pour le bon affichage des caractères avec accents mais je vois que par défaut l'interclassement de ma base MySQL est latin1_swedish_ci
devrais-je mettre les colonnes texte en utf8_unicode_ci ?
merci pour vos réponses
Posté : 09 févr. 2007, 10:15
par Dominic
j'ai longtemps été ennuyé avec les interclassements
et la meilleure formule pour moi est latin1_bin avec laquelle je n'ai plus jamais eu ce pb d'accent.
Posté : 09 févr. 2007, 11:13
par Ajoloca
Bonjour,
Pour passer une base en encodage UTF-8, il ne suffit pas de déclarer les colonnes de type CHAR() ou VARCHAR() en utf8.
Il faut déclarer le stockage en utf8.
La communication serveur -> client et client -> serveur en utf8
L'entêtes des pages en utf8.
Les fichiers (sources PHP, (X)HTML, JS, sauvegardes de la base, ...) doivent être sauvegardés en utf8
La différence entre l'UTF-8 et le iso-8859-1 se situe principalement dans le nombre de caractères supportés, l'UTF-8 supporte (est capable d'encoder tous les caractères de) toutes les langues actuellement connues.
Dans quels cas utiliser UTF-8 ?
Si l'application doit supporter des caractères autres que les caractères ANSI.
Si une internationalisation de l'application est prévue.
Si l'on utilise un système Linux/Unix qui encode par défaut en UTF-8.
Pour une utilisation des langues ouest-européennes l'iso-8859-1 peut très bien convenir mais en prennent soin si manipulation de fichiers entre systèmes hétérogènes exp. Linux->Windows, ...
Pour une utilisation WEB, Si vous ne voulez pas vous soucier de l'encodage des caractères utilisez les entités (X)HTML pour les caractères spéciaux exp. le é codez-le en é car les caractères ANSI correspondent aux mêmes codes que leurs homologues UTF-8.
Posté : 09 févr. 2007, 16:04
par carlsberg
[ en fait c'est moi qui a posé la question ]
Bonjour et merci pour les réponses
La communication serveur -> client et client -> serveur en utf8
L'entêtes des pages en utf8.
Les fichiers (sources PHP, (X)HTML, JS, sauvegardes de la base, ...) doivent être sauvegardés en utf8
pour la plupart ça va :
mes pages sont encodées utf-8 et le charset c'est utf-8
Je fais mes connexions avec mysql_query("SET CHARACTER_SET utf8");
J'ai définit maintenant mes tableaux de bdd avec les colonnes en utf-8 et ça m'a l'air de marcher
sauf - quand j'envois un email avec mail() - là j'ai des probs d'accent - il faut croire que le système email n'est pas compatible utf-8
qu'est-ce que je peux faire pour re-encoder mes emails dans l'encodage "normal" du protocol email ??
merci
Posté : 09 févr. 2007, 18:29
par Ajoloca
RE,
Tu as des fonctions PHP comme utf8_encode() et utf8_decode().
Posté : 09 févr. 2007, 18:42
par Invité
ah, oui, tout simplement - pourquoi je n'y ai pas pensé ?!
merci en tout cas