简介
人民币羊角符是现在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结果:165System.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/