国际化之货币符号显示

Posted meteoric_cry

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了国际化之货币符号显示相关的知识,希望对你有一定的参考价值。

我发现手机上显示的货币符号跟实际遇到的可能不一样,为此我逐一查询了不同国家/地区的显示。大部分是确定的,有几个国家不太确定。

 

最开始我用 Java 代码来获取,发现并不准确,比如菲律宾,官方有英语和菲律宾语,我都试了,得到都是 php xxx,PHp xxx 不符合预期。代码如下:

package com.tutorialspoint;

import java.util.*;
import java.text.SimpleDateFormat;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.text.NumberFormat;
import java.util.Locale;

public class CurrencyDemo {
   public static void main(String args[]) {
        /*
      // create a currency object with specified locale
      Locale locale = Locale.GERMANY;
      Currency curr = Currency.getInstance(locale);

      // print currency‘s code
      System.out.println("Locale‘s currency code:" + curr.getCurrencyCode());
      */
      
      
        
        double number = 123456.789;
        
        // https://developer.android.com/reference/java/util/Locale#fields_2
        Locale[] locales = {
            Locale.CANADA, 
            Locale.CANADA_FRENCH,
            Locale.CHINA,
            Locale.FRANCE,
            Locale.GERMANY,
            Locale.ITALY, 
            Locale.JAPAN,
            Locale.KOREA,
            Locale.PRC,
            Locale.SIMPLIFIED_CHINESE,
            Locale.TAIWAN,
            Locale.TRADITIONAL_CHINESE,
            Locale.UK,
            Locale.US,
            new Locale("en", "IN"),
            new Locale("en", "CA"),
            new Locale("zh", "HK"),
            new Locale("zh", "MO"),
            new Locale("zh", "SG"),
            new Locale("en", "SG"),
            new Locale("th", "TH"),
            new Locale("vi", "VN"),
            new Locale("ja", "JP"),
            new Locale("ga", "IE"),
            new Locale("ms", "MY"),
            new Locale("fil", "PH"),
            new Locale("en", "AU"),
            new Locale("km", "KH"),
            new Locale("id", "ID"),
            new Locale("es", "ES"),
        };
        
        // locales = SimpleDateFormat.getAvailableLocales();

        for (int i = 0; i < locales.length; i++) {
            // Gets currency‘s formatted value for each locale
            // without change the currency symbol
            DecimalFormat formatter = (DecimalFormat) NumberFormat.getCurrencyInstance(locales[i]);
            String before = formatter.format(number);
            
            System.out.println(locales[i].getDisplayCountry() + " | before: " + before);
        }
   }
}

访问这个网址可直接运行上面代码,查看结果:http://tpcg.io/Si9PeP

 技术分享图片

 

 

 

后来我在搜索澳门 MOP 的时候,发现苹果官网有直接显示(显示的是 MOP$),然后就依此为入门查询了一下其它国家。

规则就是苹果官网在国家简称(二个字母),对应国家的编码可以参考我上一篇文章,以越南为例:https://www.apple.com/vn/

 

澳大利亚 https://www.apple.com/au/trade-in/      显示:A$xxx (美元)

台湾 https://www.apple.com/tw/trade-in/     显示:NT$xxx  (新台币)

香港 https://www.apple.com/hk/trade-in/   显示:HK$xxx (港币)

澳门 https://support.apple.com/zh-mo/mac/repair/service   显示:MOP$xxx (

泰国 https://www.apple.com/th/shop/buy-mac/macbook-air 显示:?xxxx

加拿大 https://www.apple.com/ca/trade-in/   显示:$xxx

新加坡 https://www.apple.com/sg/trade-in/   显示:S$xxx

英国 https://www.apple.com/uk/shop/buy-mac/macbook-air    显示:£xxxx

菲律宾 https://www.apple.com/ph/shop/buy-mac/macbook-air   显示:?xxxxx

日本 https://www.apple.com/jp/shop/buy-mac/macbook-air   显示:¥xxx

韩国 https://www.apple.com/kr/shop/buy-mac/macbook-air   显示:?xxxx

马来西亚 https://www.apple.com/my/shop/buy-mac/macbook-air  显示:RM xxx

 

印度 https://paytm.com/  (搜索:“阿里巴巴  印度 电商”,找到印度电商 paytm)  显示:Rs xxxx

印尼  https://www.tokopedia.com/  (搜索:“阿里巴巴  印尼 电商”,找到印度电商 Tokopedia)  显示:Rp xxxx

柬埔寨  https://c21mekong.com.kh/ 使用的是美金 $,https://www.cellcard.com.kh/kh 用的也是 美金 $(谷歌搜索“site:*.kh”)  显示:$xxxxx

越南  https://tiki.vn/  (谷歌搜索:“京东  越南”,发现京东投资了这家公司,直接访问官网)  显示:xxx ?

 

另外一种办法是通过 【七麦数据 】的排行榜,选择不同的的国家/地区,然后选择付费排行,点进去详情有 itunes 游戏链接,进入 itunes 界面,拉到最下面,有显示畅销的商品列表,里面就标有货币符号,但我发现还是跟上面苹果官网显示不一样,而且苹果官网显示更为准确一些,这个我觉得只能作为参考。

 

以印度为例:https://www.qimai.cn/rank/index/brand/all/genre/6014/device/iphone/country/in/date/2018-09-30

技术分享图片

畅销榜第一句是IGG的王国纪元

https://www.qimai.cn/app/rank/appid/1071976327/country/in

技术分享图片

 

跳到 itunes 官网界面 https://itunes.apple.com/in/app/id1071976327?mt=8 。 显示的是印度卢布

技术分享图片

 

而实际上我访问印度电商网站显示的既有 Rs 也有 卢布(?)

技术分享图片

技术分享图片

 

如果还有其它国家/地区需要整理,可以参考我上面的搜索方法,基本上很容易能找到该国家/地区日常使用的支持。另外一种就是拿台设备自己慢慢切换国家/地区 和 语言了。

以上是关于国际化之货币符号显示的主要内容,如果未能解决你的问题,请参考以下文章

货币上的符号是啥?

DecimalFormat用法

如何从 iPhone 中的货币代码中获取货币符号?

DecimalFormat(数字格式)

如何从iphone中的货币代码中获取货币符号?

codeigniter 在值后显示货币符号