Signal124 is a method focusing to transfer binary data in obsolete communication in the most effective way. Ideal for streaming short binary strings to the network. It is effective because 124 GSM accepted chars were used instead of other Base distributions.
The current algorithm has been written for the most usable way for obsolete communication. For minifying data is recommended to use a compressor before encoding.
Signal124 needs 124 characters to represent the encoded binary data in ASCII.
From the 128 GSM 03.38 characters, the following three ones have been omitted:
Char | Explanation | Verdict |
---|---|---|
LF | a Line Feed control | excluded |
ESC | an Escape control | excluded |
Strings with special meaning:
Char | Explanation | Verdict |
---|---|---|
SP | a Space character; indicate the use of the encoding | excluded |
CR | a Carriage Return control; used as a delimiter between messages | excluded |
№ | Symbol | № | Symbol | № | Symbol | № | Symbol | № | Symbol | № | Symbol | № | Symbol | № | Symbol |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | @ | 14 | Δ | ✕ | SP | 44 | 0 | 60 | ¡ | 76 | P | 92 | ¿ | 108 | p |
1 | £ | 15 | _ | 29 | ! | 45 | 1 | 61 | A | 77 | Q | 93 | a | 109 | q |
2 | $ | 16 | Φ | 30 | " | 46 | 2 | 62 | B | 78 | R | 94 | b | 110 | r |
3 | ¥ | 17 | Γ | 31 | # | 47 | 3 | 63 | C | 79 | S | 95 | c | 111 | s |
4 | è | 18 | Λ | 32 | ¤ | 48 | 4 | 64 | D | 80 | T | 96 | d | 112 | t |
5 | é | 19 | Ω | 33 | % | 49 | 5 | 65 | E | 81 | U | 97 | e | 113 | u |
6 | ù | 20 | Π | 34 | & | 50 | 6 | 66 | F | 82 | V | 98 | f | 114 | v |
7 | ì | 21 | Ψ | 35 | ' | 51 | 7 | 67 | G | 83 | W | 99 | g | 115 | w |
8 | ò | 22 | Σ | 36 | ( | 52 | 8 | 68 | H | 84 | X | 100 | h | 116 | x |
9 | Ç | 23 | Θ | 37 | ) | 53 | 9 | 69 | I | 85 | Y | 101 | i | 117 | y |
✕ | LF | 24 | Ξ | 38 | * | 54 | : | 70 | J | 86 | Z | 102 | j | 118 | z |
10 | Ø | ✕ | ESC | 39 | + | 55 | ; | 71 | K | 87 | Ä | 103 | k | 119 | ä |
11 | ø | 25 | Æ | 40 | , | 56 | < | 72 | L | 88 | Ö | 104 | l | 120 | ö |
✕ | CR | 26 | æ | 41 | - | 57 | = | 73 | M | 89 | Ñ | 105 | m | 121 | ñ |
12 | Å | 27 | ß | 42 | . | 58 | > | 74 | N | 90 | Ü | 106 | n | 122 | ü |
13 | å | 28 | É | 43 | / | 59 | ? | 75 | O | 91 | § | 107 | o | 123 | à |
Encoded:
tØàù;Θf£&0ì8E(Å
J#c+§ΦèCØå
CΩÄ+'6¿£/ù
- a Space character indicates the encoding is used (optional)
- a Carriage return is a delimiter for next data
Decoded:
space - encoding signal124
Hell-o World
John Doe
signal01
Please, feel free to contribute to this project to improve it and integrate it into use cases.
You can raise issue or send pull request.
Consider using lossless compression before transferring and streaming your data. Probably you want to achieve a compromise between fast encoding and data size.
Examples of lossless compression libraries: