1 pièce(s) jointe(s)
Gérer le codage charset d'un lien A avec du data
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:
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:
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:
<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:
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> |