【发布时间】:2024-01-24 05:52:02
【问题描述】:
在我的 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
}
因此无法正确呈现货币代码,如何处理?这个问题的根本原因是什么。这是预期的行为吗?解决此问题的最佳做法是什么。
非常感谢大家的建议
【问题讨论】:
-
在编辑器中使用 UTF 编码并确保 charset 具有相同的编码。
-
@dfsq 我没听懂,我使用的是 Atom 编辑器。您可以从我的解释中看到,只有当我在 iframe 中加载应用程序时才会出现问题,否则它工作正常。问题中突出显示的部分。
-
使用
'symbol':'\u8364'代替'symbol':'€'。 (你的 cmets 也放错了位置。它们属于货币,而不是符号。我建议你也将它们设为属性而不是评论。)
标签: javascript angularjs iframe character-encoding ascii