Ввод эмодзи с двумя кодовыми точками в строку?

Учитывая следующие смайлы из http://unicodey.com/emoji-data/table.htm :

имя:regional indicator symbol letters ma

значения юникода:U+1F1F2 U+1F1E6

Каким должно быть значение его кодовой точки?

Пример:

Восклицательный знак имеет кодовое значение 33, то есть от 0x21 до основания 10 = 33.

scala> "\u0021"
res11: String = !

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

Итак, в этом случае я мог бы просто поставить\u0021 в строку. Но как я могу создатьString содержатьregional indicator symbol letters ma ?

# char emoji
Источник
Codelisting
за 4 против
Лучший ответ

Вот как вы можете построить String:

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:

Изображение 377189

Вы заметите, что первая часть юникода такая жеU+1F1F2 , что соответствует букве «м». Это означает, что на самом деле вы имеете дело не с одним смайликом, а с двумя отдельными смайликами, которые в определенной последовательности отображаются как заданный флаг.

В качестве примера, вот как смайлики GB (U+1F1EC U+1F1E7 ) отображается на определенных платформах (обратите внимание, что это не всегда флаг): Изображение 377190

  • 0
    Но почему у s 4 кодовых точки? scala> val s = "\u1f1f2\u1f1e6" | scala> s.codePoints.toArray возвращает res45: Array[Int] = Array(7967, 50, 7966, 54)
Codelisting
Популярные категории
На заметку программисту