Jump to content
Sign in to follow this  
Aprilwine

Question de charset

Recommended Posts

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?

Edited by Aprilwine

Share this post


Link to post
Share on other 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.

Edited by Aprilwine

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites

Merci beaucoup pour ces pistes. Ce sont des choses que je n'avais pas sues sur les encodages. C'est mon espoir que cela me permettra de créer un site vraiment multilingue!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...