【问题标题】:Converting unicode to currency symbol in javascript在javascript中将unicode转换为货币符号
【发布时间】:2018-05-29 12:44:03
【问题描述】:

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

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

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

输出:- ₹

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

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

输出:- \u20b9

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

提前致谢。

【问题讨论】:

  • 当 JavaScript 解析器遇到字符串常量时,会解析 \u 转义。因此"\u20b9""₹" 做的事情完全一样。真的不清楚你在问什么,但也许 String.fromCharCode() 是你要找的。​​span>
  • “由于某些原因,不能像这样传递值(\u20b9)” 然后解决这些原因。不要解决真正的问题。不要拼凑出一个解决方案。
  • 你不能直接通过 API 传递 unicode 字符,所以只传递 ₹ 并显示它?
  • 现在传递货币符号,而不是 unicode。传递 unicode 的原因是,如果货币符号在所有设备中都不支持。 @miga 货币符号在所有 Android 和 iOS 设备中都支持吗?

标签: javascript unicode titanium appcelerator currency


【解决方案1】:

以下对我有用:

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

【讨论】:

    【解决方案2】:

    据我了解,您需要通过 api 传递 unicode 字符的字符串值。显然,您不能使用没有斜杠的字符串代码,因为这会使它成为无效的 unicode,并且如果您传递斜杠,则会将值转换为 unicode。所以你可以在这里做的是传递不带斜杠和'u'字符的字符串,然后将剩余的字符解析为十六进制格式。

    见以下代码sn-p:

    // 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
    

    希望它能解决您的疑问!

    【讨论】:

      猜你喜欢
      • 2014-08-28
      • 1970-01-01
      • 1970-01-01
      • 2011-07-07
      • 1970-01-01
      • 2013-10-26
      • 1970-01-01
      • 2018-03-06
      • 1970-01-01
      相关资源
      最近更新 更多