如何强制UTF8进入具有数据内容的链接a



有了100%的客户端,我希望为我的用户提供一个文本文件(例如ics日历(。

我设法处理了整个代码,但下载文件是在ISO中,我希望它是在utf8中(因为icl/ics字符集必须是utf8(。

我错过了什么迫使utf8?我放了META和字符集,但下载的文件仍然是ISO字符集,我不明白为什么。

这里是我要测试的小样本,你可以复制/粘贴到一个新的文本文件中运行它:

<html>
<head>
<meta charset="utf-8">
<META http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<div><a id="mylinkICS" download='my_own_agenda' class='mylinkICS'> [ CLICK HERE TO DOWLOAD your agenda ]</a></div>
</body>
<script>
var mybigstring="BEGIN:VEVENTnUID:me@google.comnDTSTAMP:20120315T170000ZnATTENDEE;CN=My Self ;RSVP=TRUE:MAILTO:me@gmail.comnORGANIZER;CN=Me:MAILTO::me@gmail.com
nDTSTART:9:30amnDTEND:10:30amnSUMMARY:étudiant accentué nEND:VEVENT";
var icsMSG="BEGIN:VCALENDARnVERSION:2.0nX-WR-CALNAME:EDT testnNAME:Emploi du temps testnPRODID:ENT-testnCALSCALE:GREGORIANnMETHOD:PUBLISHnX-WR-TIMEZONE:Europe/ParisnX-WR-CALDESC:description agendan";
icsMSG=icsMSG + mybigstring;
icsMSG=icsMSG + "END:VCALENDAR";
icsMSG="data:text/calendar;charset=utf8," + escape(icsMSG);
//jquery version $(".mylinkICS").attr("href", icsMSG);
document.getElementById("mylinkICS").href=icsMSG;  //dom version
</script>
</html>

在我的内容(存储在mybigstring var中(中,我添加了重音单词";"学生口音"。因此,当您下载该文件时,您可以看到utf8中没有显示重音符号,因为该文件是ISO。。。。。我不明白为什么。。。。

随着时间的流逝,我找到了答案:escape((函数发送iso字符集,所以我使用了encodeURIComponent

我更换了

icsMSG="data:text/calendar;charset=utf8," + escape(icsMSG);

通过

icsMSG="data:text/calendar;charset=utf8," + encodeURIComponent(icsMSG);

现在,流是utf8,可以通过这种方式发布icical。

问题解决了!

相关内容

  • 没有找到相关文章

最新更新