Bonjour à tous et merci de votre aide,

je rencontre un problème pour afficher correctement des caractères en arabe,
j'ai créé le document en ISO-8859-6, (j'ai aussi essayé Windows-1256, unicode UTF-8...)
ça s'affiche correctement dans dreamweaver, et aussi lorsque je lance la page en local dans explorer, mais lorsque je la met en ligne et l'ouvre (avec ce même explorer) j'obtiens ceci :Çäåãáèäèæ Ùæ ×Ñêâ ÇäãáÇäÉ

si je met "codage arabe(iso)" pour afficher la page, il y a en effet les caractères arabes qui apparaissent, sauf que les mots s'intervertissent (par exemple mon picto de début de ligne que je place à droite se retrouve... au milieu de la phrase ?!) ou changent carrément (les lettres du titres ne sont pas du tout les mêmes que ceux que je vois en local !)

et comme je ne parle pas du tout cette langue je ne peux pas vérifier si ce qui est écrit est correct. j'ai de gros doutes vu que ça ne ressemble pas à ce que m'a donné la traductrice.

alors comment faire pour voir sur internet la même chose que je voie en local ?

d'avance merci, je ne m'attendais pas à cette difficulté et j'ai facturé une misère mon intervention sur ce coup, vu le nombre d'heures depuis lesquelles je pinaille.. Smiley sweatdrop
Bonjour,

Mieux vaut bosser en UTF-8 exclusivement, sauf si tu as des instructions précises pour bosser avec un autre codage (pour compatibilité avec un ancien site ou une ancienne base de données, par exemple).

Ensuite, l'Arabe s'écrit de droite à gauche. Ça peut être compliqué à gérer quand tu mélanges du texte en Arabe et des noms latins s'écrivant de gauche à droite. Je connais mal le sujet, mais a minima il faudra déclarer la propriété direction en CSS, peut-être sur BODY, et il se peut que ponctuellement tu aies besoin d'utiliser l'élément BDO.

Il va falloir se documenter un peu sur le sujet je pense. Tous les éditeurs de code ne sont pas adaptés à une saisie de textes "rtl" (aucune idée en ce qui concerne Dreamweaver), il y a sans doute des astuces et des bonnes pratiques en la matière. Il me semble que l'équipe Internationalisation du W3C a publié pas mal de ressources sur le sujet.
Merci fvsch,
(c'est un drole de pseudo...)
Pour l'instant voici ce que j'obtiens :
http://www.adate.org/ide/fiches-pratiques/A_la-carte-de-resident.html
le texte est en arabe en sélectionnant clic droit, codage, arabe(iso)
j'ai ferré à droite, et enlevé les pictos car, chose étrange, même en les plaçant en premier ou dernier sur une ligne ils se mettent au milieu.

j'attends des nouvelles de la traductrice pour savoir si le texte est traduit correctement,

j'ai testé pas mal de solutions trouvées sur le web, qui ont dépanné d'autres personnes dans mon cas, mais pas moi...
Salut,
fvsch a écrit :
Ensuite, l'Arabe s'écrit de droite à gauche. Ça peut être compliqué à gérer quand tu mélanges du texte en Arabe et des noms latins s'écrivant de gauche à droite. Je connais mal le sujet, mais a minima il faudra déclarer la propriété direction en CSS, peut-être sur BODY, et il se peut que ponctuellement tu aies besoin d'utiliser l'élément BDO.

Pour la gestion du sens de lecture, il y a l'attribut HTML dir (de valeur "rtl" pour du texte de droite à gauche, "ltr" pour du texte de gauche à droite), à placer à la racine du document (au sein de la balise ouvrante <html>) et à chaque élément introduisant un changement de sens de lecture.
J'avoue ni connaitre absolument rien au sujet... Mais j'ai testé le site que tu donnes chez moi (Firefox). Si je lui demande explicitement de traiter comme si c'était de l'ISO-8859-6, tout s'affiche avec des caractères arabes.

Alors c'est peut-être une réflexion bête d'un mec qui n'a rien compris, mais je me dis que, puisque Firefox switch ton site par défaut en ISO-8859-1 (et non en 6), c'est peut-être ta requête HTTP le problème.

(Ca ne peut pas être entièrement ma configuration FF puisque mes sites en UTF-8 se mettent en en utf-8, et pareil pour mes sites en iso-8859-1 =/ )

EDIT : j'ai testé avec Firebug, et l'encodage de la requête est bien de l'iso-8859-1
Modifié par justin.dekeyser (02 Apr 2012 - 21:04)
justin.dekeyser a écrit :
c'est peut-être ta requête HTTP le problème

Ça se joue effectivement en HTTP, mais ce n'est pas la requête qui pose problème: c'est la réponse. En effet, le serveur envoie l'en-tête suivant:
Content-Type: text/html; charset=ISO-8859-1

là où on attendrait:
Content-Type: text/html; charset=ISO-8859-6

ou, idéalement, pour un site en UTF-8 (UTF-8 c'est bon mangez-en):
Content-Type: text/html; charset=UTF-8


justin.dekeyser a écrit :
EDIT : j'ai testé avec Firebug, et l'encodage de la requête est bien de l'iso-8859-1

Nope, c'est l'encodage déclaré dans les en-têtes de la réponse HTTP. Simple confusion de vocabulaire, j'imagine.
Merci de vos interventions, ça fait chaud de ne pas se sentir tout seul dans la galère,
mon entête est bien
<meta http-equiv="Content-Type" Content-Type: text/html; charset=ISO-8859-6" />


alors si l'entête envoyée n'est pas la bonne, (1 au lieu de 6) comment faire pour "forcer" le navigateur à afficher la page avec la bonne entête ?
et pourquoi le texte apparait correctement en local alors que sur le web je suis obligée de faire un clic droit et modifier le codage ?
je suis allée sur des sites en arabe et ils s'affichent directement avec les caractères adéquats.
comment font-ils ...? Smiley sweatdrop
Dans ton éditeur de texte, as-tu réglé le(s) fichier(s) de façon à ce qu'il(s) utilise(nt) le bon codage ?
B'jour Victor,
j'utilise dream,
si je vais dans propriété de la page,
à "titre/codage" il y a codage : arabe (iso)
eliza a écrit :
j'utilise dream,
si je vais dans propriété de la page,
à "titre/codage" il y a codage : arabe (iso)

Y a-t-il la mention du codage précis utilisé ? Y a-t-il marqué ISO-8859-6 ?

Essaie d'ajouter le codage à utiliser dans un fichier .htaccess, que tu places à la racine du site :
AddCharset ISO-8859-6 .html
Je dirais que, pour un maximum de sûreté, il faudrait vérifier que tes fichiers concernés soient tous bien encodés au format iso-8859-6 (ça, c'est indépendant de tout le web; il faut le faire avec dreamweaver si le prog le permet, ou avec un autre programme de traitement de texte). Une fois que c'est fait, il faut bien vérifier que tu as marqué
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-6">
. Et au final, il faut t'assurer que le serveur sur lequel tu bosses mentionnera bien que les réponses sont encodées en iso-8859-6.

Si, avec tout ça, ça ne fonctionne toujours pas, ça provient soit du navigateur qui fait des siennes, auquel cas tu ne sais rien faire, parce que tu n'as pas le contrôle du navigateur des clients; soit il reste un endroit où l'encodage est mauvais, mais je ne vois pas où. Nos amis peuvent peut-être éclairer

EDIT : mais quitte à tout revérifier, et éventuellement reconvertir, je suivrais les conseils de fvsch concernant l'utf-8, sauf si c'est une contrainte du client Smiley rolleyes
Modifié par justin.dekeyser (03 Apr 2012 - 14:12)
pour suivre fvsch, et justin, j'ai tenté de remettre utf-8.
c'est une fiche pratique, donc un popup intépendant du site qui lui est en français.
voici l'entête testée :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html dir="rtl" lang="ar"  xml:lang="ar">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

mais ça ne fonctionne qu'en local, le texte est bien dans dream, et si je lance explorer en local pour regarder la fiche tout est ok.
c'est sur internet que ça ne s'affiche pas correctement (cet indice pourrait-il indiquer d'où vient le problème ?)


Victor :
a écrit :
Y a-t-il la mention du codage précis utilisé ? Y a-t-il marqué ISO-8859-6 ?

non, il y a juste écrit arabe (iso) dans les propriétés de la page (mais est-ce que je regarde au bon endroit ??)
pour suivre tes conseils j'ai remis en ISO-8859-6, et ajouté un htaccess.

justin :
j'ai bien ceci en haut de la page :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html dir="rtl" lang="ar"  xml:lang="ar">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-6">

tu dis :
a écrit :
il faut t'assurer que le serveur sur lequel tu bosses mentionnera bien que les réponses sont encodées en iso-8859-6

Comment dois-je procéder ?
actuellement, avec le haut de page que je viens d'indiquer, en faisant clic droit et codage j'ai bien arabe(iso) déjà sélectionné, mais contrairement à tout à l'heure il y a plein de signes étranges dans la page...

tu dis aussi
a écrit :
soit ça provient soit du navigateur ...soit il reste un endroit où l'encodage est mauvais

je penche pour la solution 2 car j'affiche d'autres sites en arabe qui fonctionnent très bien, et si vous suivez le lien vers ma page vous verrez que ça ne fonctionne pas chez vous non plus...
le lien avec ce test :
http://www.adate.org/ide/fiches-pratiques/A_la-carte-de-resident.html

n'empèche que ça marche en local. pourquoi ? pourquoi ce monde est-il si cruel ?
beuehuheu.. Smiley bawling
Le soucis c'est que je n'ai pas dreamweaver installé.

Avant de faire quoique ce soit avec un navigateur ou un serveur, il faut être 100% sûr que ton document est bien encodé, soit en iso-8859-6, soit en utf-8. Dis-toi que si quelque chose fonctionne alors que ceci n'est pas validé, même si ça fonctionne, c'est un bugg, et un bugg, ce n'est jamais stable.

EDIT : d'expérience, je peux dire que c'est fou le nombre de gens qui s'arrêtent à l'étape du "ça marche", sans être sûr que ça fonctionne pour les bonnes raisons... Ce n'est franchement pas sérieux, quoiqu'on puisse en dire d'autre.

Quand tu es sûre que tout est bien encodé en utf-8, et que tes caractères apparaissent bien, seulement après tu peux passer à l'étape navigateur/serveur. Pas avant, c'est une perte de temps.
Modifié par justin.dekeyser (03 Apr 2012 - 17:03)
ok Justin,
je suis bien d'accord avec toi,
j'espérais que le fait que ça fonctionne en local puisse donner des indications, ou permettre d'éliminer certaines pistes, pour comprendre d'où vient le problème.

le lien suivant :
http://www.adate.org/ide/fiches-pratiques/A_la-carte-de-resident.html

contient l'entête :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html dir="rtl" lang="ar"  xml:lang="ar">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


dans dream, dans "propriétés de la page", à "titre/encodage", il y a "Unicode(UTF-8)"

lorsque je suis le lien avec explorer, le codage est par défaut "alphabet occidental (ISO)"
et l'affichage est mauvais. si je clic droit et met codage "UNICODE (UTF-8)" l'affichage est ok.

que dois-je vérifier, et surtout comment, pour savoir si la page est bien encodée en utf-8 ?

Merci de ton aide,

Eliza
A priori le problème reste que le serveur déclare un codage ISO-8859-1. Pour toutes les pages HTML.
Tu peux toujours enregistrer ta page en ISO-8859-6, écrire dans le code HTML (balise <meta> qui va bien) que c'est de l'UTF-8 ou autre manipulation, si le serveur déclarer que c'est de l'ISO-8859-1 c'est cette information qui prend le dessus.

1. Pour vérifier les informations envoyées par le serveur: on pourra utiliser un outil tel que la console Web de Firefox, l'onglet Net de Firebug, ou encore un site tel que http://web-sniffer.net/
2. Pour modifier la configuration du serveur, ça peut éventuellement se gérer avec un fichier .htaccess si c'est un serveur Apache (très courant) et que l'administrateur du serveur a laissé la possibilité de surcharger ainsi la configuration d'Apache pour certaines directives (courant, mais pas systématique).

Et, dans l'idéal, je rappelle mes préconisations:
- Tous les fichiers enregistrés en UTF-8.
- Balises <meta> qui déclarent de l'UTF-8 dans les pages HTML.
- Serveur web qui déclare de l'UTF-8 (idéalement) ou qui ne déclare aucun codage (dans ce cas le navigateur lira l'information de la balise META).

L'UTF-8 c'est bon, mangez-en.
Modifié par fvsch (03 Apr 2012 - 18:43)
J'ai du nouveau !!!
j'ai trouvé une discussion proche de la mienne sur un autre forum :
http://forum.hardware.fr/hfr/Programmation/HTML-CSS-Javascript/charset-utf-sujet_63209_1.htm
(pour ceux que ça peut intéresser)
apparemment ça pourrait venir de la configuration du serveur.
mon client est hébergé chez arsys (je les aurai demain matin, ils ferment à 19h)
du coup j'ai fait un test en mettant le fichier sur mon serveur ovh, et ça fonctionne !

je reviendrai demain matin vous dire si ça marche pour de bon,

merci de votre aide en tout cas
Smiley cligne
Merci vfsch,
ton message a croisé le miens,
j'ai suivi ton conseil, je suis passée en UTF-8
(j'espère que ça fait pas grossiiiire !)
confirmation !
j'ai appelé le fournisseur de l'espace ftp, pour la config du serveur.
le codage alphabet occidental prend le pas sur ma déclaration utf-8
je pense que la modif se situe au niveau du AddDefaultCharset

il fait le nécessaire,

merci à tous !!