Aller au contenu

Question de charset


Aprilwine

Sujets conseillés

Je suis programmeur américain et j'essaie de supporter les caractères mutilingues avec mon software. En spécifique, j'ai un formulaire où on peut saisir de l'information, qui est stockée dans une base de données MySQL avec l'aide de PHP. Mais comme je ne me sers pas souvent des caractères accentués (sauf qu'ici, sûrement :P ), je ne sais pas m'assurer que ça va s'afficher correctement pour tout utilisateur sur toute plateforme (ou bien la majorité). J'ai vu parfois des choses étranges, où les guillemets se transforment en Ò, et j'en ai peur!

Si mon META CHARSET="iso-8859-1" sur la page dont je parle, et aléatoirement quelqu'un en Tchèque, qui est habitué à se servir du "iso-8859-2", saisit le caractère « č » (c avec caron), comment dois-je le traiter du début à la fin? Et si on entre simplement les caractères au-dessus d'ASCII 159, comme « é »? Si cela entrait dans la bdd comme « é » et sortait comme « »? Oh là!

Jusqu'en ce moment-ci j'ai écrit deux interfaces: l'un en anglais, et l'autre en français. Celle français emploie toujours « é » et de telles choses parce que je suis effrayé de taper simplement « é » dans le code HTML, de crainte que ce ne soit mal interpreté.

Peut on me diriger vers des infos qui pourraient m'aider?

Modifié par Aprilwine
Lien vers le commentaire
Partager sur d’autres sites

Je ne puis que te proposer quelques liens généralistes, étant donné que tu ne précises pas la nature exacte des problèmes.

http://www.genezys.net/blog/2005/06/17/99-...x-de-caracteres

http://french.joelonsoftware.com/Articles/Unicode.html

http://openweb.eu.org/articles/jeux_caracteres/

Il s'agit d'articles en français que j'avais mis de côté.

Lien vers le commentaire
Partager sur d’autres sites

Désolé de ne pas m'avoir mieux exprimé. C'était seulement que, quand mon formulaire reçoit un caractère en dehors de ASCII 0 au 127, le logiciel le met avec tous les autres dans une base de données MySQL via PHP. Il y a des caractères, comme « č », qui font partie de quelques charsets mais pas d'autres, et dans ce cas-là je suppose qu'il faudrait les représenter avec Unicode. Il semble que IE fait une telle conversion silencieusement, mais les autres browsers? Et comment savoir si je reçois le č du ISO-8859-2 (au-dessous de ASCII 255) ou celui d'Unicode? Les deux cas, sont-ils égaux?

Aussi, souvent il n'est pas possible de tester un logiciel sur le système qui vous donnerait des problèmes. Chez moi, je tape « é », je le renvoie au logiciel et donc à la base de données, elle me l'affiche, et tout paraît aller bien. Mais je ne peux pas le tester sur l'ordinateur de l'utilisateur en France ou Pologne qui a de différents paramètres, alors il me ferait du bien de savoir que je traite ces caractères dans la manière appropriée pour les rendre lisible à tout le monde, n'importe où ils sont. Ça, c'est mieux? :D

Il paraît que ces pages web que vous m'avez recommandées seront très utiles. Merci.

Modifié par Aprilwine
Lien vers le commentaire
Partager sur d’autres sites

Bonjour Aprilwine,

Je pense que pour tous les utilisateurs qui traitent des caractères diférents comme dans l'exemple que tu cites, la seule possibilité soit d'utiliser l'encodage UTF-8 ou UTF-16. Au moins ceux-ci permettent l'affichage de tous les caractères, indépendamment du pays ou de la langue d'origine.

Tu n'auras pas à te poser de question de charset ni à traiter toi-même les corrections d'affichage.

Dan

Lien vers le commentaire
Partager sur d’autres sites

Les navigateurs envoient les données dans l'encodage qu'on a spécifié avec l'attribut accept-charset de <form>.

Quand cet attribut n'est pas spécifié l'encodage de la page est utilisé.

Les caractères en dehors de l'encodage spécifié sont envoyés sous la forme de références numériques Unicode (€ par exemple pour le caractère euro)

Il n'y a que Internet Explorer qui se comporte de façon incohérente.

En fait, il n'a qu'une valeur possible pour accept-charset : UTF-8, et il ne l'utilise que s'il n'est pas possible d'écrire les caractères avec l'encodage utilisé pour la page.

Et si cet attribut n'est pas fourni, il choisit un encodage au hasard qui peut transmettre tous les caractères.

Bref, a priori si tu envoies tes pages en utf-8 et que tu fonctionnes en utf-8 partout il n'y aura aucun problème.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...