将 unicode 转换为 javascript 中的货币符号

Converting unicode to currency symbol in javascript

我正在使用 appcelerator 中的货币符号在 Android 和 iOS 中构建应用程序。我想让许多参数动态化,因此将此值 (u20b9) 作为 api 传递给应用程序。由于某些原因不能像这样传递值(\u20b9),所以不带斜线传递。

当我使用下面的代码时它工作正常:-

var unicode = '\u20b9';
alert(unicode);

输出:- ¥

当我使用下面的代码时:-

var unicode = '\'+'u20b9';
alert(unicode);

输出:- \u20b9

因此,它在各处打印 \u20b9 而不是 ₹,这是我不想要的。

提前致谢。

以下对我有用:

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

据我了解,您需要通过 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

希望它能解决您的问题!