Probléme d'accent et de caracteres speciaux

cs_roul Messages postés 6 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 4 avril 2006 - 16 mars 2006 à 10:09
didaskein Messages postés 2 Date d'inscription jeudi 1 mai 2003 Statut Membre Dernière intervention 23 juillet 2008 - 23 juil. 2008 à 15:11
Salut a tous,
Je viens vers vous parceque là je pete un cable avec une histoire d'accents qui empechent le script de s'executer normalement. C'est un script de rollover a distance tout simple qui fonctionne tres bien, mais des que le nom de l'image comporte un accent, catastrophe!

Bon, je vous montre mon script pour etre plus clair:
---------------------------------------------------------------------
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<!-- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -->
</HEAD>


<script language="javascript">
<!--
// setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=iso-8859-1")


image1 = new Image;
image1.src = "photos/Bouchées1, ©Abcd.jpg";
image2 = new Image;
image2.src = "photos/Bouchees2-Abcd.jpg";
//-->
</script>



&nbsp;


<CENTER>

</CENTER>



<HTML>
-----------------------------------------------------------------------------------

Donc voila, l'image 2 passe sans problemes, par contre l'image1 aïe aïe aïe... Vous pouvez voir les entetes pour les caracteres speciaux, mais celle contenue dans le javascript bloque tout, c'est pour ca qu'elle est en commentaire, mais j'ai peut etre une erreur de syntaxe deadans, je sais pas...

D'ailleurs, l'image ééééé.jpg ne s'affiche pas non plus alors qu'elle est dans de l'html; là non plus je comprends pas, l'hml ne comprends plus les accents ???

Si quelqu'un a une solution, quite a passer par un htmlentities() ou utf8_decode() en php, je suis preneur, parceque la je craque...

Merci,
Roul.

13 réponses

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
16 mars 2006 à 12:54
B
onjour...

pour faire simple, il me semble que...

il ne faut pas confondre la façon dont ta page HTML sera interprtée grace aux
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">, ou autres, et la façon qu'a le systéme d'exploitation de l'ordinateur distant de gérer avec sa page de code le système de fichiers...

Il vaut mieux pour des problèmes de portabilité de rester avec des noms de fichier en MINUSCULE et avec des caractères non accentué et sans caractères spéciaux de préférence...

Les caractères ASCII de 0 à 127, dont sur 7bits, sont internationnaux les autres ????

voila pour faire court....
;o)
0
cs_roul Messages postés 6 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 4 avril 2006
16 mars 2006 à 19:32
Salut et merci pour ta reponse,

Et oui, en general j'evite bien tout les accents et autres excentricités, mais là, impossible de faire autrement, je ne peux pas toucher aux nom d'images, et en plus ils me servent de commentaires...

Donc aucun moyen de faire rentrer des caracteres accentués dans du javascript ???

Merci,
Roul.
0
silvervana Messages postés 10 Date d'inscription mardi 21 février 2006 Statut Membre Dernière intervention 16 mai 2006 1
3 avril 2006 à 11:01
Bonjour,

Je rencontre le même problème que toi... et pour répondre aussi à Roul, le gros problème, c'est que tu ne peux pas prévoir à l'avance ce que vont te rentrer les gens en nom d' image !!!! Révons d'un monde ou les gens n'utiliserait pas les caractères spéciaux... lol ;-) Donc si quelqu'un a une idée je suis aussi preneur.... Merci.
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
3 avril 2006 à 11:39
Bonjour,
l'erreur est ailleurs....
<script type="text/javascript"><!--
image1 = new Image;
image1.src = "photos/Bouchées1, ©Abcd.jpg";
image2 = new Image;
image2.src = "photos/Bouchees2-Abcd.jpg";
alert("ok");
//--></script>
aucune erreur ni sous IE, ni sous FF
pour un nom de fichier ce sont des caractères comme <>/\...
qui sont interdits (avec windows , différent avec linux ? ) pas plus et pas les accents.
dans un string ( entre " ) on met ce qu'on veut... et heureusement.

sur le site peut-être ? là les accents pour les noms de fichiers sont-ils autorisés ?
rien n'empêche, si c'est le cas de transformer ces caractères accentués
en "caractères normaux" avant d'enregistrer.
Cordialement. Bul. ~ Mon Site qu'il est à Moi ~<FO>

</FO>
</S< body>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
silvervana Messages postés 10 Date d'inscription mardi 21 février 2006 Statut Membre Dernière intervention 16 mai 2006 1
3 avril 2006 à 15:56
Je suis d'accord que quand tu mets directment ta source dans ta balise IMG cela marche, mais pour ma part, j'ai cette partie de html :


<td>





<td/>



et dans une fonction javascript je veux changer la source comme ceci :


document.images["previsualisation"].src=path + "Nénuphars.jpg"; (exemple en dur pour comprendre mon pb...)


Ca marhce très bien pour toute les images sauf celles avec accents... Une idée ???


Merci beaucoup
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
3 avril 2006 à 16:10
je viens d'essayer sur mon site
( je n'avais jamais tenté ! )
une image nommée "détruire.gif" n'est pas affichée
la même renommée "detruire.gif" ça baigne.
ça vient donc sûrement des serveurs, qui souvent
fonctionnent sous unix, et qui n'apprécient pas.
( en local, avec Windows : aucun problème ).
remplacer les accents avant mémorisation.
Cordialement. Bul. ~ Mon Site qu'il est à Moi ~<FO>
</FO>
</S< body>
0
silvervana Messages postés 10 Date d'inscription mardi 21 février 2006 Statut Membre Dernière intervention 16 mai 2006 1
4 avril 2006 à 09:15
Hello !! Oui, j'ai fait les mêmes conclusions que toi. Pour ma part ca tourne sur tomcat, et il m'affiche %C3%A9 à la place d'un é par exemple.... Enfin on va bien trouver une solution !!!! Merci pour les réponses , Silvervana
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
4 avril 2006 à 12:47
Bonjour à V
ous...

Il semble donc incontournable d'essayer la méthode charCodeAt de l'objet String
Txt.charCodeAt(i);

ou peut être encore
unescape(Txt);

;0) bonne recherche...
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
4 avril 2006 à 13:06
d'accord, bien entendu, avec PetoleTeam
ou zone=zone.replace(/éèëê/gi,"e"); ...
Cordialement. Bul. ~ Mon Site qu'il est à Moi ~<FO>
</FO>
</S< body>
0
silvervana Messages postés 10 Date d'inscription mardi 21 février 2006 Statut Membre Dernière intervention 16 mai 2006 1
4 avril 2006 à 14:32
Re... Problème donc résolu... effectivement avec un escape, plutôt que unescape, cela marche très bien... On aura jamais quelque chose d'homogène pour ces histoire de caractères.... en tout cas tomcat voulait de l'hexa...ah lala.... enfin, merci, bonne semaine..
0
cs_roul Messages postés 6 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 4 avril 2006
4 avril 2006 à 14:46
Cool, merci à tous pour le coup de main !!

Bon, puisque pour silvervana ca marche sur "escape", et bah il me reste plus qu'a trouver comment ca fonctionne et essayer a mon tour, en esperant que ca soit la bonne solution pour moi aussi !

Roul.
0
intox18 Messages postés 11 Date d'inscription mardi 1 mars 2005 Statut Membre Dernière intervention 2 juillet 2008
29 avril 2008 à 16:14
Fonction qui remplace les caractere speciaux d'une chaine, peut-etre ca servira a quelqu'un:

function strDecode(r) {
    var search = [ '%20',
                   '%C3%A9', '%C3%A8', '%C3%AA', '%C3%AB',  // é è ê ë
                   '%C3%A1', '%C3%A0', '%C3%A2', '%C3%A4',  // á à â ä
                   '%C3%BA', '%C3%B9', '%C3%BC', '%C3%BB', // ú ù ü û
                   '%C3%AD', '%C3%AC', '%C3%AE', '%C3%AF', // í ì î ï
                   '%C3%B3', '%C3%B2', '%C3%B4', '%C3%B6', // ó ò ô ö
                   '%2C', '%3A', '%3B', '%3F', '%21', // , : ; ? !
                   '%2B', '%2F', '%5E', '%3D', '%25', // + / ^ = %
                   '%C2%B4', '%60', '%7E', // ´ ~ ¨
                   '%40', '%23', '%7C', '%26', // @ # | &
                   '%22', '%27',  // " '
                   '%28', '%29', '%5B', '%5D', '%7B', '%7D', // ( ) [ ] { }
                   '%24', '%C2%A3', '%C2%AC', '%C2%A2' // $ £ ¬ ¢
                 ];

    var replace = [ ' ',
                    '\351', '\350', '\352',  '\353',
                    '\341', '\340', '\342', '\344',
                    '\372', '\371', '\374', '\373',
                    '\355', '\354', '\356', '\357',
                    '\363', '\362', '\364', '\366',
                    ',', ':', ';', '?', '!',
                    '+', '/', '^', '=',  '%',
                    '´', '~', '¨',
                    '@', '#', '|', '&',
                    '"', '\'',
                    '(', ')', '[', ']', '{', '}',
                    '$', '\243', '¬', '\242'
                  ];
    for (i=0; i < search.length; i++)
    {
        countCode = r.split(search[i]).length;
        if (countCode > 1) {
            for (j=0; j < countCode; j++) {
                r = r.replace(search[i], replace[i]);
            }
        }
    }
    
    return (r);
}
0
didaskein Messages postés 2 Date d'inscription jeudi 1 mai 2003 Statut Membre Dernière intervention 23 juillet 2008
23 juil. 2008 à 15:11
Il est aussi possible d'utiliser la fonction javascript : DecodeURI("MavaleurADecoder");
http://www.js-doc.com/fonctions/decodeuri.html
0
Rejoignez-nous