您的位置:首页 > 移动开发 > Android开发

Android中的羊角符

2016-04-02 21:48 405 查看

简介

人民币羊角符是现在APP常使用的符号,有人会问,这个符号不是很简单吗?键盘结合输入法一敲就有了啊!当然,问题不会这么简单。
为什么强调“人民币”三个字呢?因为日元也是用羊角符,并且两者长得非常相似!我想问一下APP开发的码农们,你们用的人民币羊角符对吗?


两种羊角符

百度百科中给了如下羊角符定义:

人民币符号为:¥。书写顺序为:先写大写字母“Y”,再在竖划上加上二横,即为“¥”,读音为:yuán(音:元)。


百度百科日元羊角符描述:

日圆(円),又称作日元,其纸币称为日本银行券,是日本的官方货币,于1871年制定。日圆也经常在美元和欧元之后被当作储备货币。货币符号“¥”,国际标准化组织ISO4217订定其标准代号为JPY。日语罗马字写作Yen。

从定义上看,人民币羊角符和日元羊角符长得是一样的,在手写的时候不会区别对待,但是作为两种不同货币的符号,在计算机的世界中肯定需要区别!那么问题来了:

1、我们键盘直接敲出来的是中文羊角符还是日文羊角符?
2、另外一个羊角符长什么样?
3、怎样获取?


区分人民币和日元羊角符

我们将讨论人民币羊角符和日元羊角符的区分,现在我们有两种羊角符分别是键盘敲击出来的羊角符¥,另一个羊角符¥。两个羊角符在word、java代码和Android、IOS手机中表现稍有区别。为了区分,键盘敲击的羊角符¥设为A,另一个¥设为B。

1、金投网文章

金投网有一篇专门的文章,介绍了人民币羊角符和日元羊角符的区别,人民币羊角符号:人民币应该是¥,¥是日元

2、键盘和搜狗输入法

中文和日文很多符号本身是一样的,所以打印符号是中文还是日文其实很难分清,键盘的羊角符符号是A;但是,如果你用搜狗输入法,当输入“renminbi”时,会出现羊角符符号B。

3、从在word、代码、手机中视觉来看

(1)java代码中

(2)Word 2010中

(3)华为P7 EMUI P7-L07系统中

(4)小米2s MUI7 7.2.5.0系统中

我们可以看到在word和两款Android操作系统中,两个羊角符差别明显,A只有一个横,B有两个横!!按照人民币羊角符的定义,B应该符合标准。如果Android手机中使用A羊角符,很肯能只出现一个横!如果开发人员两个符号都用…… 那界面定会不协调统一!

4、这两个羊角符的编码到底是多少?Java中货币类Currency给出的结果是什么?

首先确定系统编码:

System.out.println(Charset.defaultCharset());  结果:UTF-8


System.out.println((int)'¥'); A结果:165
System.out.println((int)'¥');  B结果:65509


println(Currency.getInstance(Locale.CHINA).getSymbol());
结果:¥(B)
println(Currency.getInstance(Locale.JAPAN).getSymbol());
结果:JPY


到这,我想各位也糊涂了,我写到这时也快疯掉了,搞不清哪一个是人民币符号!

5、去查UTF-8表!

(1)首先确定两个羊角符编码





从查询结果可以看出,java代码打印的结果没问题,A的10进制为65509 16进制为FFE5,B的羊角符为165 16进制为A5。

(2) 查询UTF-8表:

A:



B:



Yen sign表示的意思是日元符号!按照UTF-8的解释,两个都是日元羊角符!!!!A是全角,B是半角!!!但是我用搜狗输入法全角、半角打印的结果都是A,也许是输入法的问题,但是无论如何,她两个区别终于解开了。

总结

折腾了这么久,我查询了GBK的编码表,用到的羊角符是A,其实这也没多大必要了,特别在APP开发时,只能用系统提供的符号库。其实人民币符号和日元符号本身就长一样,在计算机系统中我们的GBK定义了自己的符号,但是和utf-8是一样的,所以我们取到的还是utf-8提供的羊角符。

对于APP开发,特别是Android APP开发的工程师还是要注意这个问题,因为不同Android系统的字符库有很大区别,A类羊角符(全角)很可能是一横,但是我们人民币符号定义是两横,所以建议使用B类羊角符(半角),不会出现大问题。如果表示日元的话,可在前面加上JPY,用来区分。如果需要规范使用货币符号的话,可以使用Currency,像前面的例子那样,不过这样获取的羊角符是A类羊角符。

Currency.getInstance(Locale.CHINA).getSymbol()


参考文献

1、百度百科,人民币符 http://baike.baidu.com/view/654291.htm

2、百度百科,日元 http://baike.baidu.com/view/68875.htm

3、金投网,人民币羊角符 http://forex.cngold.org/school/c3122068.html

4、utf-8编码表和编码说明 http://www.utf8-chartable.de/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: