IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Gérer le codage charset d'un lien A avec du data


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Avatar de clavier12AZQSWX
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2009
    Messages
    1 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 423
    Points : 876
    Points
    876
    Par défaut 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 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>
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1

  3. #3
    Membre éclairé
    Avatar de clavier12AZQSWX
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2009
    Messages
    1 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 423
    Points : 876
    Points
    876
    Par défaut
    j'ai lu mais l'article ne parle pas du cas des POST/GEtT par lien ou par formulaire sans passage par serveur (c'est mon cas, regardez la pièce attachée que j'ai ajouté après votre commentaire).

    dites moi si je me trompe mais quand on clique sur un lien A contenant data:text , le serveur ne travaille pas, aucun accès, c'est direct. d'ailleurs mon exemple en pièce attachée fonctionne sans serveur, c'est 100% client.

  4. #4
    Membre expérimenté
    Homme Profil pro
    bricoleur par les mots
    Inscrit en
    Avril 2015
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : bricoleur par les mots
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2015
    Messages : 724
    Points : 1 620
    Points
    1 620
    Par défaut
    jour

    pour l'utf utilise encodeURIComponent() a la place de escape qui si je ne me trompe encode en Latin-1(ISO-8859-1)

  5. #5
    Membre éclairé
    Avatar de clavier12AZQSWX
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2009
    Messages
    1 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 423
    Points : 876
    Points
    876
    Par défaut
    Merci Melka,

    effectivement encodeURIComponent permet de résoudre mon gros souci ! de plusieurs heures de recherche aboutissent enfin !


    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    icsMSG="data:text/calendar;charset=utf8," + encodeURIComponent(icsMSG);

    résolu!
    testé Ok avec Chrome,firefox, ms Edge
    Rendu utf8 Ok avec notepadd ++
    import possible ical ics vers MS courrier Calendrier
    tests faits sous Win10

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 12
    Dernier message: 16/01/2020, 11h32
  2. Gérer les liens absolus avec PHP
    Par moimp dans le forum Langage
    Réponses: 3
    Dernier message: 08/12/2019, 03h41
  3. Lien ASP avec javascript
    Par RATIER dans le forum ASP
    Réponses: 3
    Dernier message: 15/07/2004, 08h54
  4. [swish]Lien spécial avec flash
    Par florentcorporation dans le forum EDI/Outils
    Réponses: 3
    Dernier message: 03/03/2004, 09h34
  5. Réponses: 14
    Dernier message: 01/09/2003, 15h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo