Javascript文件内容在前端编码

时间:2017-10-05 11:46:48

标签: javascript angularjs iframe character-encoding ascii

在我的javascript文件中,每个货币符号及其十进制代码都有一个映射,如下所示:

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
    }
};

我将用于以不同格式显示货币。当我加载我的Web应用程序时,javascript文件正在非常正确地加载并完美呈现。 但是当我在iFrame中加载我的应用程序时,代码符号十进制值变为如下:

'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
    }

由于这个原因无法正确呈现货币代码,如何处理?这个问题的根本原因是什么?这是预期的行为吗?解决此问题的最佳做法是什么。

非常感谢您提出的所有建议

1 个答案:

答案 0 :(得分:0)

如果您在IFrame中定义内容的编码。

说明(来源:IFrame Encoding):

  

iframe中的页面完全独立于“外部”   页面,它可以有任何你想要的字符集。换句话说,每个   页面应指定自己的字符集(并确保它实际上   编码在那个charset)。

所以你可以在IFrame中定义编码,我猜是这样。

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

这里是工作示例,内容变得很好,如果你仍然面临问题,请使用下面的JSFiddle并分享回来。

JSFiddle Demo