2017-10-05 65 views
0

在我的JavaScript文件存在与它的十进制代码货币符号的映射,如下: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 
    } 

而且由于这个不能够正确地呈现货币代码,如何来处理呢?这个问题的根源是什么?这是预期的行为吗?解决此问题的最佳做法是什么?

非常感谢您的所有建议

+0

使用UTF编码,并确保字符集具有相同的编码。 – dfsq

+0

@dfsq我没有得到它,我正在使用Atom编辑器。你可以从我的解释中看到,只有当我将应用程序加载到iframe中时,问题才会发生,其他方面工作正常。问题中突出显示的部分。 –

+0

代替“符号”:'€''使用'符号':'\ u8364''。 (你的评论也是错误的,它们属于货币,而不是符号,我建议你让它们成为财产而不是评论。) –

回答

0

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

解释(来源:IFrame Encoding):

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

所以你可以在IFrame中定义编码,就像我猜测的那样。

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

这里是工作示例,内容呈现正常,如果您仍然面临问题,请使用下面的JSFiddle并共享它。在编辑

JSFiddle Demo