receiving SMS in UTF

I am receiving text messages using such a piece of code:

char sms_message [200] = "";
int c;
int i = 0;
while ((c = sms.read()) != -1) {
  sms_message[i++] = (char)c;
}

All is good, if text message is limited to normal western characters. But if it is sent with some UTF8, what I get are numbers, for example

861051011161161011083284665832678432841149710532110103104105101109327978776932100971101043299104111328466329911797328111712132107104979910432100973210710111632116104117994632681013211610510111232116117993211511732100117110103321001059910432118117443281117121321071049799104321181171053210811111010332115111971103279110109101493210311710532131013

How can I decode such a message to actually read it?

OK, apparently, after some research, it is UCS2 encoding.

In python it's very easy to get what I want:

sms="005A0069006F0142006F0020007A006900F30142006B006F002000740061007700650072006E00610020"

binascii.unhexlify(sms).decode('utf-16-be')

'Zioło ziółko tawerna '

So my question is: what is an identical function in Arduino?