conversion UTF-8 <-> GSM

The Arduino String data type does not use any encoding. UTF-8 is not part of it. The String.charAt(), String.length() do not take care of UTF-8.

So it is the normal English GSM 03.38 with no extra UTF-16 characters and no special language ?

I'm afraid you have no luck :frowning:
You have to write the code yourself. I think that a conversion table it the most common way. The escape character makes it harder, but that can be included in the table. You might even have to use PROGMEM for the table.
Others want it as well: Unicode problem · Issue #18 · cristiansteib/Sim800l · GitHub
The SIM800 is able to send and email in UTF-8, but that will probably not be possible to use with a cell phone.