| date | desc |
|---|---|
| 10 Jan 2024 | Initial |
Starting with version 3.23, ICON Signals has the ability to send emoji characters in outgoing SMS and Rainbow messages. This works both in alert notifications and in the TextTalk application.
Emoji characters in incoming SMS and Rainbow messages are translated to a custom ASCII form.
The "custom ASCII form" emojis in outgoing messages are translated to actual emoji characters prior to sending out to the SMS provider or Rainbow.
Most modern languages are supported by UTF-16 (i.e. 16-bit Unicode code points).
The majority of emoji characters are 32-bit values and are expressed within code as a High Unicode Surrogate and Low Unicode Surrogate pair of 16-bit values. These characters have hexadecimal codepoint values of 10000 and higher.
Some earlier emojis are supported within UTF-16. Microsoft .NET considers these characters to be Unicode Symbols. An important example is the warning symbol, which has a codepoint value of 26a0.
In both cases, Signals detects and converts these characters into the plain ASCII string: emoji(hexvalue)
where hexvalue is the hexadecimal value of the emoji Unicode codepoint.
For example, emoji(1f600) represents one of the standard smiley face emojis.
The operative rules are:
hexvalue can be upper case or lower case hexadecimal digits
invalid hexvalue values will yield unexpected results
the word emoji is lower case
there is no whitespace between the word emoji, the open parenthesis (, the hexvalue value, or the close parenthesis )
This translation to and from the emoji(hexvalue) form is necessary to enable storing messages in the Signals database and to marshal the emoji values in messages though various subsystems.
Here are some alert notification and TextTalk examples. Please note that this only applies to standard Unicode emojis. It does not work for custom images, GIFs or other content which may be labeled as "emojis" within applications or devices.
This example displays a Rainbow message with the warning symbol ? and an upside down smiley face ??.
Note: the warning symbol displays differently in applications and on devices compared to more recently-standardized emojis.



Here we send a message from a cell phone including emojis.


And here is a reply from the Rainbow bubble back to the mobile device.


Unforunately the converter used to turn markdown into HTML doesn't handle Unicode character entities correctly. So, the table below doesn't show the actual emoji images. Their details can be looked up at the emojipedia site.
| emoji name | codepoint | Signals ASCII repr |
|---|---|---|
| warning | 26a0 |
emoji(26a0) |
| check mark button | 2705 |
emoji(2505) |
| cross mark | 274c |
emoji(274c) |
| cross mark button | 274e |
emoji(274e) |
| cloud with lightning and rain | 26c8 |
emoji(26c8) |
| cloud with snow | 1f328 |
emoji(1f328) |
| snowflake | 2744 |
emoji(2744) |
| tornado | 1f32a |
emoji(1f32a) |
| cloud with lightning | 1f329 |
emoji(1f329) |
| high voltage | 26a1 |
emoji(26a1) |
https://stackoverflow.com/questions/75232234/how-do-you-convert-from-emoji-to-unicode-escapes-in-js
https://itecnote.com/tecnote/c-how-to-remove-emoji-characters-from-a-string/
https://stackoverflow.com/questions/28023682/how-do-i-remove-emoji-characters-from-a-string
https://learn.microsoft.com/en-us/dotnet/standard/base-types/character-encoding-introduction
ICON Signals | 2018-2024 ICON Voice Networks