bonjour,
j'ai un ptit problème de charset.
je souhaite fournir du contenu utf8 data dans un lien A.
je le fais par ce biais en javascript (je peux pas le faire en export serveur donc je constuit le fichier .txt via le javascript que je transmet donc en lien a; ça évite en plus un accès serveur) :
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 var icsMSG="BEGIN:VCALENDAR\nVERSION:2.0\nX-WR-CALNAME:EDT test\nNAME:Emploi du temps test\nPRODID:ENT-test\nCALSCALE:GREGORIAN\nMETHOD:PUBLISH\nX-WR-TIMEZONE:Europe/Paris\nX-WR-CALDESC:description agenda\n"; icsMSG=icsMSG + grossechaine; icsMSG=icsMSG + "END:VCALENDAR"; icsMSG="data:text/calendar;charset=utf8," + escape(icsMSG); $(".lienICS").attr("href", icsMSG);
ma page html contient bien les 2 balises meta suivantes :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <meta charset="utf-8"> <META http-equiv="Content-Type" content="text/html; charset=utf-8" />
et mon lien que j’alimente par le javascript est basique (donc forcément en utf8 car i hérite des méta ) :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part <div><a download='emploi_du_temps_TEST' class='lienICS '> [ CLIQUEZ ICI pour obtenir votre export calendrier ]</a></div>
Le fichier se télécharge très bien quand on clique mais il est en iso8859-1 et je ne comprends pas pourquoi ?! je fais pourtant l'escape ET le charset utf8 !
qu'est-ce que j'ai manqué ?
j'ajoute un script fonctionnel si vous voulez tester , j'ai remplacé le jquery par du pur dom et j'ai mis un exemple pièce jointe avec une chaine accentuée . moi ça exporte en iso et pas utf8, je comprends pas pourquoi....
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 <html> <head> <meta charset="utf-8"> <META http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <div><a id="lienICS" download='emploi_du_temps_TEST' class='lienICS '> [ CLIQUEZ ICI pour obtenir votre export calendrier ]</a></div> </body> <script> var grossechaine="BEGIN:VEVENT\nUID:me@google.com\nDTSTAMP:20120315T170000Z\nATTENDEE;CN=My Self ;RSVP=TRUE:MAILTO:me@gmail.com\nORGANIZER;CN=Me:MAILTO::me@gmail.com\nDTSTART:9:30am\nDTEND:10:30am\nSUMMARY:étudiant accentué \nEND:VEVENT"; var icsMSG="BEGIN:VCALENDAR\nVERSION:2.0\nX-WR-CALNAME:EDT test\nNAME:Emploi du temps test\nPRODID:ENT-test\nCALSCALE:GREGORIAN\nMETHOD:PUBLISH\nX-WR-TIMEZONE:Europe/Paris\nX-WR-CALDESC:description agenda\n"; icsMSG=icsMSG + grossechaine; icsMSG=icsMSG + "END:VCALENDAR"; icsMSG="data:text/calendar;charset=utf8," + escape(icsMSG); //$(".lienICS").attr("href", icsMSG); document.getElementById("lienICS").href=icsMSG; </script> </html>
Partager