2015-05-26 2 views
6

Я пытался вынуть все символы эмози из строки (например, дезинфицирующее средство). Но я не могу найти полный набор значений emoji.Диапазон значений Emoji

Каков полный набор значений символов UTF16 символов emoji?

+0

[unicode.org] (http://www.unicode.org/emoji/charts/full-emoji-list.html) является окончательным руководством для всего, что связано с UTF. – usr2564301

+1

И если вы читаете FAQ [emoji FAQ] (http://unicode.org/faq/emoji_dingbats.html), он говорит: «* Эможи распространяются по многим блокам Unicode *», что очевидно в [полном emoji chart] (http://www.unicode.org/emoji/charts/full-emoji-list.html), поэтому вы не можете использовать одну проверку диапазона, чтобы отфильтровать их, вам нужно будет проверить наличие нескольких диапазонов и даже конкретные значения. –

+0

Спасибо, Jongware и Remy. Но мне было просто любопытно, что есть список диапазонов, которые я могу использовать напрямую. Поскольку есть более 1000 символов emoji, требуется некоторое время, чтобы выяснить диапазоны с графика – SL988

ответ

4

Стандарт Unicode в Unicode® Technical Report #51includes список смайликам (emoji-data.txt):

... 
21A9 ; text ; L1 ; none ; j # V1.1 (↩) LEFTWARDS ARROW WITH HOOK 
21AA ; text ; L1 ; none ; j # V1.1 (↪) RIGHTWARDS ARROW WITH HOOK 
231A ; emoji ; L1 ; none ; j # V1.1 (⌚) WATCH 
231B ; emoji ; L1 ; none ; j # V1.1 (⌛) HOURGLASS 
... 

Я считаю, что вы хотите удалить каждый символ, указанный в настоящем документе, который имел Default_Emoji_Style из emoji.

Нет способа, кроме ссылки на список определений, подобный этому, для идентификации символов эможи в Юникоде. Как упоминается в FAQ, они распространяются по разным блокам.

+1

Таблица emoji-data.txt [была обновлена ​​до 2.0] (http://www.unicode.org/Public/emoji/2.0//emoji-data.txt). См. Http://unicode.org/reports/tr51/index.html#emoji_data – drott

-1

Если вы имеете дело только с английским характером и характером эмози, я думаю, что это выполнимо. Сначала преобразуйте свою строку в символы UTF-16, затем проверьте каждый символ, значение которого больше 0x0xD800 (для emoji на самом деле> = 0xD836) должно быть emoji.

Это происходит потому, что «The Unicode standard permanently reserves the code point values between 0xD800 to 0xDFFF for UTF-16 encoding of the high and low surrogates» и, конечно, английские символы (и многие другие символы не будут падать в этом диапазоне)

Но поскольку точка смайликов код начинается с U1F300 их стоимость UFT-16 на самом деле находятся в этом диапазоне ,

Отметьте здесь quick reference for emoji UFT-16 value, если вы не потрудились сделать это самостоятельно.

+0

Привет, Qiulang, Спасибо за ваш ответ, хотя я не думаю, что это правильно. Простой пример счетчика - [0x2600] (http://www.iemoji.com/view/emoji/183/nature/black-sun-with-rays), который не входит в диапазон, который вы предоставили, но является emoji. Кроме того, я имею дело не только с английским, но и с несколькими языками. – SL988

+0

Да, я знаю это эможи. Но большинство персонажей из эммедиа попадают в диапазон, который я сказал. Только пару из них нет, должно быть легко иметь дело с – Qiulang

+0

. Проверьте здесь https://en.wikipedia.org/wiki/Emoji, только некоторые из них, которые называются блоками Dingbats – Qiulang

Смежные вопросы