You do know that unicode are multi-byte characters...?
A simple serial terminal of any sort doesn’t understand any MBCS
(multi byte character set)
If you load an appropriate application on your PC, and send the complete character octet, you will be getting closer to unicode, but PDU messages include a region/char-set identifier in the header - you’ll need to let the receiving application know that as well, so it can load up the appropriate character table to match.
Yes I know that, what I don't know is how to convert the octets string to assets that is all.
I know where the octets string begins and it's size inside the pdu.
All I got so far is that I must convert the hex to binary and move last digit from every next octet to every beginning of the previous octet, but that is for compressing.
Any examples for decompression would be very much appreciated as I am a visual learner.
(TBH - I found PDU & MBCS/Unicode too hard in SMS, so I found a modem that allows me to send multi-part messages in text mode!)
Also - BTW, I don't believe SMS supports Unicode, but it uses foreign character tables - which you would have to 'translate' with a lookup based on the charset in use.
It will NEVER come out the serial port as Unicode until/unless you re-encode the foreign pseudo-ASCII into 8-bit high characters available on your terminal character set..
The Arduino is straight C with C++ on top.
So any bit manipulation algorithm will drop straight in with virtually no changes.
What you are looking for are the bitwise operators.