Bonjour,

J'ai en développement un petit site de vente d'un seul produit, ce site n'a qu'une seule vocation la prise de commande du produit..
L'objet doit être trilingue fr, en et ru. La gestion des langues se fait par php qui inclus, les variables liées à l'encodage,le texte etc...
Mon souci provient du ru, je suis bien sur un encodage uft-8 enregistré comme tel. En France sur mes navigateurs tout semble ok en ru mais à l'usage sur place, il semblerait que ce ne soit pas le cas Smiley smile on obtient des résultats incompréhensibles. Le cyrillique n'est pas mon fort mais il ne me semble pas que ce soit le texte initial...
Si une bonne âme pouvait éclairer ma lanterne, le site est là: piercing-bodyflash.com et pour passer l'intro code "domino".
(Pour les amateurs de piercing de nombril lumineux ... vous pouvez vous lâcher)

Modifié par ghost (12 Jun 2010 - 12:30)
Bonjour,

Trois défauts trouvés:
- Il y a des BOM dans tes pages. Le BOM, c'est pas bon.
- Tu ne déclares pas le codage du texte dans les en-têtes HTTP. Bouh, pas bien.
- On écrit utf-8 ou utf8 ou UTF-8 ou UTF-8, mais jamais uft-8 comme je peux le lire dans ton code.

Donc au final:
1. Tu as fait une faute de frappe et le navigateur ne comprend pas ton instruction pour le codage des caractères. (Qui est la seule instruction donnée vu que tu n'as pas configuré le serveur.)
2. Donc le navigateur utilise ses paramètres par défaut. Ça peut être d'utiliser un codage par défaut ou de tenter de déterminer automatiquement le codage. Chez toi ça donne de l'UTF-8, chez d'autres ça sera de l'ISO-8859-1 ou autre chose.
Bonjour,

Arf la faute de frappe quelle bourrique! Smiley biggol
J'ai du sauté un tuto, déclarer pas le codage du texte dans les en-têtes HTTP tu aurais un pti lien pour ma culture générale?
Pour le BOM, il conviendrait (je travaille sous notepad++) d'enregistrer le code systématiquement en utf-8 sans BOM quelque soit le site?
Donc je me résumes:
1) La faute de frappe
2) Déclarer pas le codage du texte dans les en-têtes HTTP (obligatoire?)
3) Enregistrer utf-8 sans BOM
C'est bien ça, en tout cas merci Smiley smile , je te ferais envoyer un piercing Smiley lol
ghost a écrit :
J'ai du sauté un tuto, déclarer pas le codage du texte dans les en-têtes HTTP tu aurais un pti lien pour ma culture générale?

En gros le serveur envoie cet en-tête:
Content-Type: text/html

et il serait préférable qu'il envoie, pour ce site:
Content-Type: text/html; charset=UTF-8

Ainsi le navigateur n'a même pas besoin de lire les fichiers (HTML, mais aussi JavaScript qui peut contenir des chaines de caractères pour des messages d'alerte par exemple) pour savoir quel est le codage. Reprendre cette information avec une balise META sert juste de sécurité.

La manière de déclarer le codage dépend du serveur. Pour un serveur Apache, tu peux placer dans la configuration du VirtualHost, ou éventuellement dans un .htaccess à la racine du site, la directive suivante:
AddDefaultCharset "UTF-8"
(Faire une recherche pour vérifier la syntaxe exacte.)

Ça se gère aussi depuis l'application elle-même (en PHP, Python ou autre...).

ghost a écrit :
Pour le BOM, il conviendrait (je travaille sous notepad++) d'enregistrer le code systématiquement en utf-8 sans BOM quelque soit le site?

Oui. Si tu fais de l'UTF-8, toujours faire de l'UTF-8 sans BOM. Le BOM en UTF-8 ne sert à rien et peut éventuellement poser de petits soucis. À bannir.

ghost a écrit :
2) Déclarer pas le codage du texte dans les en-têtes HTTP (obligatoire?)

Pas obligatoire, mais préférable.