2016-11-21 109 views
0

考虑下面的表情符号,从http://unicodey.com/emoji-data/table.htm将两个代码表情符号放入字符串中?

名称:regional indicator symbol letters ma

Unicode值:U+1F1F2 U+1F1E6

什么应该它的代码点值是什么?

实施例:

感叹号具有33,即0×21的码点值至基部10 = 33

scala> "\u0021" 
res11: String = ! 

scala> "\u0021".codePoints.toArray 
res12: Array[Int] = Array(33) 

因此,在这种情况下,我可以简单地把\u0021为一个字符串。但是,如何创建String以包含regional indicator symbol letters ma

回答

4

这里是你如何构建字符串:

scala> val points = Array(0x1F1F2, 0x1F1E6) 
points: Array[Int] = Array(127474, 127462) 

scala> val string = new String(points, 0, points.length) 
string: String = 

编辑:下面的部分是我原来的答案,我希望会有所帮助的人

我想你咯误会这个“表情符号”是如何工作的。如果比较:flag-ma:您有兴趣到:flag-mc:

enter image description here

你会发现,编码,它的第一部分是相同的U+1F1F2,对应于字母“m”。这意味着你实际上没有处理一个单独的表情符号,它实际上是两个独立的表情符号,当它们以特定顺序时,它们被显示为给定的标志。

作为一个例子,这里是如何的GB的表情符号(U+1F1EC U+1F1E7)是在某些平台上呈现(注意它并不总是一个标志):enter image description here

+0

但是为什么's'有4个代码点? 'scala> val s =“\ u1f1f2 \ u1f1e6”| scala> s.codePoints.toArray'返回 'res45:Array [Int] = Array(7967,50,7966,54)' –