2017-10-05 4 views
0

Dans mon fichier javascript il y a un mappage de chaque symbole monétaire avec son code décimal, comme ci-dessous:contenu du fichier Javascript est obtenir codé en fin avant

var currency_symbols = { 
    'EUR':{ 
     'symbol':'€', // Euro 
     'isPrefix':true 
    }, 
    'CRC':{ 
     'symbol':'₡', // Costa Rican Colón 
     'isPrefix':true 
    }, 
    'GBP':{ 
     'symbol':'₤', // British Pound Sterling 
     'isPrefix':true 
    }, 
    'ILS':{ 
     'symbol':'₪', // Israeli New Sheqel 
     'isPrefix':true 
    }, 
    'INR':{ 
     'symbol':'₹', // Indian Rupee 
     'isPrefix':true 
    }, 
    'KRW':{ 
     'symbol':'₩', // South Korean Won 
     'isPrefix':true 
    }, 
    'NGN':{ 
     'symbol':'₦', // Nigerian Naira 
     'isPrefix':true 
    }, 
    'PHP':{ 
     'symbol':'₱', // Philippine Peso 
     'isPrefix':true 
    }, 
    'PYG':{ 
     'symbol':'₲', // Paraguayan Guarani 
     'isPrefix':true 
    }, 
    'UAH':{ 
     'symbol':'₴', // Ukrainian Hryvnia 
     'isPrefix':true 
    }, 
    'VND':{ 
     'symbol':'₫', // Vietnamese Dong 
     'isPrefix':true 
    } 
}; 

Ce que je vais utiliser pour afficher la devise dans un format différent . Lorsque je charge mon application web, le fichier javascript est très bien chargé et rendu parfaitement. Mais quand je chargeais ma demande dans un iFrame le symbole de code valeur décimale devient comme suit:

'EUR':{ 
     'symbol':'€', // Euro 
     'isPrefix':true 
    }, 
    'CRC':{ 
     'symbol':'₡', // Costa Rican Colón 
     'isPrefix':true 
    }, 
    'GBP':{ 
     'symbol':'£', // British Pound Sterling 
     'isPrefix':true 
    }, 
    'ILS':{ 
     'symbol':'₪', // Israeli New Sheqel 
     'isPrefix':true 
    }, 
    'INR':{ 
     'symbol':'₹', // Indian Rupee 
     'isPrefix':true 
    }, 
    'JPY':{ 
     'symbol':'Â¥', // Japanese Yen 
     'isPrefix':true 
    }, 
    'KRW':{ 
     'symbol':'â‚©', // South Korean Won 
     'isPrefix':true 
    }, 
    'NGN':{ 
     'symbol':'₦', // Nigerian Naira 
     'isPrefix':true 
    }, 
    'PHP':{ 
     'symbol':'₱', // Philippine Peso 
     'isPrefix':true 
    }, 
    'PLN':{ 
     'symbol':'zł', // Polish Zloty 
     'isPrefix':true 
    }, 
    'PYG':{ 
     'symbol':'₲', // Paraguayan Guarani 
     'isPrefix':true 
    }, 
    'THB':{ 
     'symbol':'฿', // Thai Baht 
     'isPrefix':true 
    }, 
    'UAH':{ 
     'symbol':'â‚´', // Ukrainian Hryvnia 
     'isPrefix':true 
    }, 
    'VND':{ 
     'symbol':'â‚«', // Vietnamese Dong 
     'isPrefix':true 
    } 

Et à cause de cela le pas en mesure de rendre le code monétaire correctement, comment gérer cette situation? Quelle est la cause première de ce problème? Est-ce un comportement attendu? Quelle est la meilleure pratique pour résoudre ce problème?

Merci beaucoup pour toutes les suggestions

+0

Utiliser le codage UTF éditeur et assurez-vous charset a même encodage. – dfsq

+0

@dfsq Je ne l'ai pas compris, j'utilise l'éditeur Atom. Vous pouvez voir à partir de mon explication que le problème ne se produit que lorsque je charge l'application dans un iframe, sinon son fonctionnement fonctionne bien. Section mise en évidence dans la question. –

+0

Au lieu de ''symbole': '€'' utilise ''symbole': '\ u8364''. (Vos commentaires sont également déplacés, ils appartiennent à la monnaie, pas au symbole, je suggère que vous en fassiez une propriété plutôt qu'un commentaire.) –

Répondre

0

Si vous définissez l'encodage du contenu à l'intérieur du iFrame.

Explication (Source: IFrame Encoding):

La page à l'intérieur du iframe est complètement indépendant de la page "externe" et il peut avoir tout ce que vous voulez charset. En d'autres termes, chaque page doit spécifier son propre jeu de caractères (et assurez-vous qu'il est effectivement codé dans ce jeu de caractères).

Vous pouvez donc définir le codage dans l'IFrame comme je suppose.

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="utf-8"> 
    </head> 
    <body> 
     Test 
    </body> 
</html> 

ici travaille par exemple, le contenu se rendu bien, si vous rencontrez toujours la question, s'il vous plaît utiliser le ci-dessous jsFiddle et de le partager en arrière.

JSFiddle Demo