2009-12-16 5 views
0

Nous avons traduit une de nos pages en français et tout le html de la page s'affiche parfaitement. Cela dit, il existe une table javascript (ext js) et les caractères accentués ne s'affichent pas correctement. La page est encodée en UTF-8 dans les balises META HTML, mais quand je regarde à l'intérieur de FireBug, je vois ce qui suit:Les caractères français ne s'affichent pas correctement dans la grille javascript

Accepter-Charset ISO-8859-1, utf-8; q = 0,7, *; q = 0.7

Je suppose que le problème est lié au retour de l'ISO-8859-1. Est-ce que quelqu'un sait pourquoi la page elle-même afficherait bien, mais pas le texte à l'intérieur du composant javascript? Est-ce que vous spécifiez l'encodage séparément pour les fichiers javascript?

Répondre

1

Le tag Accept-Charset donne un ensemble de codages qui sont acceptés - si toutes les données envoyées est codé UTF-8, alors ne vous inquiétez pas.

Pouvez-vous préciser ce qui se passe exactement?

  1. Vous dites "la table javascript " - Je suppose que vous construisiez une table HTML dans JS et en le plaçant dans les DOM? S'il vous plaît élaborer, surtout w.r.t. toutes les conversions de caractères. Générez-vous du texte HTML ou construisez-vous avec des éléments DOM avec des attributs?
  2. D'où le JS obtient-il ses données? Si avec AJAX, avez-vous vérifié le codage pour cette page?
  3. Est-ce que le JS utilise encoder() ou decode()? Ceux-ci ne manipulent pas UTF-8 correctement.


EDIT:

  • Tapez l'URL du code JS dans votre navigateur, et regardez "Infos sur la page" pour voir son encodage. Je parie que est ISO-8859-1, ce qui expliquerait les problèmes d'en-tête.

  • Ensuite, vérifiez le codage des données AJAX. Si elle est créée dynamiquement, vous pouvez:

    1. Activer "Afficher XMLHttpRequests" dans la console Firebug,
    2. charge sur votre page de base HTML,
    3. Ouvrez l'onglet console Firebug,
    4. Développer l'EEG AJAX/POST demande et ouvre le réponse sous-onglet,
    5. Vérifiez l'encodage pour les données et corrigez si nécessaire.

BTW, je vais avoir des problèmes similaires et ont pas tout à fait aplani les questions (toujours pas sûr que les données source n'est pas mal codé).

+0

Il s'agit d'une table EXT JS gridPanel. La table est construite avec JS et est placée dans le DOM. Le code JS s'appelle onLoad() et réside dans un fichier séparé. Le fichier JS a les caractères français définis à l'intérieur lors de la création de la table. AJAX est utilisé pour obtenir le contenu de la table, mais le problème est présent dans les en-têtes de tableau qui sont définis avant que AJAX ne soit impliqué. Je ne suis pas sûr si EXT JS utilise l'encodage ou le décodage, mais je ne sais pas pourquoi ils feraient cela à l'en-tête de la table. Merci! – user77413

+0

Oh, je pensais que "ext JS" était "JavaScript externe" mais maintenant je me rends compte/rappelez-vous que c'est le code de ** www.extjs.com **. D'oh. – NVRAM

+0

Je n'ai pas réalisé que les fichiers eux-mêmes sont encodés. J'ai compris dans mon éditeur de code où l'encodage est défini. La modification du codage de fichier en UTF-8 a résolu le problème. Merci!!! – user77413

0

Il est possible que l'ext. Le fichier JS supprime les caractères non reconnus par mesure de sécurité. L'en-tête "Accept-Charset" peut être spécifié à plusieurs endroits, y compris en tant qu'attribut dans certains éléments HTML. Avez-vous effectué une recherche de Accept-Charset (insensible à la casse) dans le fichier incriminé?

+0

J'ai cherché Accept-Charset, mais je n'ai rien trouvé dans les fichiers associés. Je suis perplexe sur la façon de le résoudre. – user77413

+0

Pourriez-vous fournir un lien vers le code? – Rushyo

+0

Ext ne "supprime pas les caractères non reconnus" –

Questions connexes