我正在使用appcelerator中的货币符号来在Android和iOS中构建应用。我想让很多参数动态化,所以将这个值(u20b9)作为api传递给app。由于某些原因,不能像这样传递值(\ u20b9),所以不带斜线传递。
当我使用下面的代码时,它正常工作: -
var unicode = '\u20b9';
alert(unicode);
输出: - ₹
当我使用以下代码时: -
var unicode = '\\'+'u20b9';
alert(unicode);
输出: - \ u20b9
正因为如此,而不是₹它打印\ u20b9无处不在,我不想要。
提前致谢。
答案 0 :(得分:3)
以下适用于我:
console.log(String.fromCharCode(0x20aa)); // ₪ - Israeli Shekel
console.log(String.fromCharCode(0x24)); // $ - US Dollar
console.log(String.fromCharCode(0x20b9)); // ₹ - ???
alert(String.fromCharCode(0x20aa) + "\n" + String.fromCharCode(0x24) + "\n" + String.fromCharCode(0x20b9));
答案 1 :(得分:1)
据我所知,你需要通过api传递unicode字符的字符串值。显然,你不能使用没有斜杠的字符串代码,因为这会使它成为无效的unicode,如果你传递斜杠,那么将值转换为unicode。所以你在这里可以做的是传递没有斜线的字符串& ' U'字符,然后将剩余的字符解析为十六进制格式。
请参阅以下代码段:
// this won't work as you have included 'u' which is not a hexadecimal character
var unicode = 'u20b9';
String.fromCharCode(parseInt(unicode, 16));
// It WORKS! as the string now has only hexadecimal characters
var unicode = '20b9';
String.fromCharCode( parseInt(unicode, 16) ); // prints rupee character by using 16 as parsing format which is hexadecimal
我希望它能解决您的问题!