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

jQuery Discussion :

jQuery en iso-8859-1


Sujet :

jQuery

  1. #1
    Membre éclairé
    Inscrit en
    Février 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 277
    Par défaut jQuery en iso-8859-1
    Bonsoir,

    Je suis un peu ennuyé d'ouvrir un sujet pour un toute petite question :

    Est-ce que l'Ajax de jQuery fonctionne aussi en iso-8859-1 ? Pour les test que j'ai fait (notamment l'auto-complete) il y a quelques jours, cela ne fonctionne qu'en UTF-8.

    Il y a t-il un moyen de le faire en iso-8859-1 / occidental ?

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Ce n'est pas tellement jQuery qui impose ça, mais XMLHttpRequest, le mécanisme JavaScript qui permet de faire de l'AJAX.
    Il n'y a pas de contournement officiel, j'ignore s'il y a des contournements officieux (je compterais pas dessus.)

    En principe ça devrait pas t'intéresser, l'encodage de transmission des données, le système côté serveur devrait décoder la réponse et te donner des caractères débarrassés de leur encodage.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2008
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2008
    Messages : 49
    Par défaut
    Essayes ca, mais comme l'a dit thelvin, il vaut mieux éviter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $.ajaxSetup({
    	scriptCharset: "iso-8859-15"
    });
    Meme le site de jquery le conseille pas http://api.jquery.com/jQuery.ajaxSetup/

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    D'après la doc c'est pas à ça que ça sert, ça n'intervient que dans le cas où le dataType est script ou jsonp (changement du système de transport classique pour remplacer par une utilisation interne d'une balise <script> donc,) pour indiquer quel est le charset du script qui va être récupéré au cas où ça ne soit pas indiqué et pas le même que la page.
    Mais ça implique que la requête est en GET et donc qu'il n'y a pas de question d'encodage des données envoyées : c'est une URL et une URL c'est utf-8.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre éclairé
    Inscrit en
    Février 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 277
    Par défaut
    Merci pour ces précisions.

    J'ai lu avec attention la page sur "encoder son site en UTF-8, ici même (http://j-willette.developpez.com/tut...-site-en-utf8/).

    J'ai une question: coté serveur, il faut mettre (méthode PHP) un

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    header( 'content-type: text/html; charset=utf-8' );

    Or je suis en iso-8859-1 et je n'ai jamais eu besoin de mettre une ligne similaire avec un header charset iso-8859-1. Que faut-il comprendre ? Que par défaut tout est en ISO-8859-1 ?

    Ou bien a alors (méthode Apache AddDefaultCharset utf-8) que les serveurs Apache sont, par défaut, toujours en ISO-8859-1 (pour une raison identique au AddDefaultCharset ISO-8859-1 que l'on n'a jamais besoin de spécifier)

    Même remarque que les bases de données MySQL. Elles sont toujours par défaut en ISO-8859-1?

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par Jolt0x Voir le message
    Or je suis en iso-8859-1 et je n'ai jamais eu besoin de mettre une ligne similaire avec un header charset iso-8859-1. Que faut-il comprendre ? Que par défaut tout est en ISO-8859-1 ?
    Sur les environnements de bureaux utilisant une localisation de langue latine occidentale, du moins, oui, c'est beaucoup le cas.
    Simple mécanisme de compatibilité ascendante supposant que si le concepteur du site n'a pas eu la présence d'esprit d'indiquer le charset, il n'a sans doute pas eu non plus la présence d'esprit d'utiliser autre chose que iso-8859-1 (ou quoi que ce soit qui s'utilisait en général dans son pays à l'époque où personne ne s'intéressait aux charsets.)

    À noter que c'est différent en XHTML qualifié. Là le défaut est utf-8. Parce qu'a priori, quelqu'un qui dessert du XHTML qualifié a eu le temps de se former sur ce genre de questions.

    Citation Envoyé par Jolt0x Voir le message
    Ou bien a alors (méthode Apache AddDefaultCharset utf-8) que les serveurs Apache sont, par défaut, toujours en ISO-8859-1 (pour une raison identique AddDefaultCharset iso-8859-1 que l'on n'a jamais besoin de spécifier)
    Pas "toujours" mais ça arrive souvent que des hébergeurs le configurent comme ça, oui.
    De toute façon si ce n'est pas l'hébergeur, c'est le navigateur qui choisira par défaut. (Mais certes, un navigateur chinois choisira un encodage chinois par défaut, logique.)

    Citation Envoyé par Jolt0x Voir le message
    Même remarque que les base de données MySQL. Elles sont toujours par défaut en ISO-88xxx ?
    Je n'en sais rien en réalité, mais je serais très surpris du contraire.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre éclairé
    Inscrit en
    Février 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 277
    Par défaut
    Moi j'ai un peu l'impression que si. Je ne me suis jamais préoccupé du charset(sauf pour les pages html) avant l'Ajax (par jQuery).

  8. #8
    Membre éclairé
    Inscrit en
    Février 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 277
    Par défaut
    Une autre question, cette fois au sujet de PHP (mais je n'ouvre pas un sujet pour ca dans le forum PHP).

    Je crée par script PHP des fichiers texte (ascii) avec dedans, évidement des caractères français avec accent. Je n'ai pas besoin de spécifier un quelconque charset ? Je lis ces même fichiers, pas de charset a nouveau ?

    Je crée aussi des fichiers de config PHP qui ont une extension PHP. Là aussi je ne m'occupe pas du charset ??? Tous ca par fopen($file, 'w+').

    Merci.

  9. #9
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par Jolt0x Voir le message
    Moi j'ai un peu l'impression que si. Je ne me suis jamais préoccupé du charset(sauf pour les pages html) avant l'Ajax (par jQuery).
    "Si" quoi ?

    Citation Envoyé par Jolt0x Voir le message
    Je crée par script PHP des fichiers texte (ascii) avec dedans, évidement des caractères français avec accent.
    Donc pas ascii. Pas d'accent en ascii.

    Citation Envoyé par Jolt0x Voir le message
    Je n'ai pas besoin de spécifier un quelconque charset ? Je lis ces même fichiers, pas de charset a nouveau ?

    Je crée aussi des fichiers de config PHP qui ont une extension PHP. Là aussi je ne m'occupe pas du charset ??? Tous ca par fopen($file, 'w+').
    Grosso-modo PHP ignore complètement les questions d'encodage.
    L'idée est donc de choisir un encodage, un seul, et de créer tous tes fichiers .php et autres fichiers textes que tu crées toi-même, dans ce même encodage.
    Par contre si tu appelles des trucs comme htmlentities(), il ne peut pas ignorer la question du charset pour savoir s'il tombe sur un é à transformer en &eacute;. Dans ce cas-là, il utilise toujours* windows-1252 par défaut (une extension de iso-8859-1,) mais il est possible de lui en indiquer un autre en paramètre.

    * Du moins jusqu'à la version 5.4.0 qui utilise toujours utf-8 par défaut et qu'on ne trouve, je crois, pas chez les hébergeurs.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [Encoding][String] remplacement de caractères ISO 8859-2
    Par srenaudo dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 23/03/2006, 12h06
  2. Réponses: 15
    Dernier message: 24/02/2006, 14h17
  3. caractères ISO-8859-1 en console sur XP
    Par Thierry Chappuis dans le forum Windows
    Réponses: 3
    Dernier message: 14/12/2005, 13h13
  4. [UBUNTU] Pages Web Iso-8859-15
    Par troumad dans le forum Ubuntu
    Réponses: 6
    Dernier message: 03/06/2005, 16h11
  5. Convertir une chaine UTF8 en ISO-8859-1
    Par eods dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 26/08/2004, 16h57

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