> unicode looks like this in the pakket [.a.l.i.v.e.:.s.t.i.l.l. .a.l.l.i.v.e.,. .s.e.r.v.e.r.?./01].
Maybe I completely misunderstand you, but if you put the "L" in front of a character string, the compiler will allocate 16 bits (a wide character) for each character, rather than 8 bits (a normal character). This looks a lot like the ASCII portion of UCS-2 or UTF-16 unicode (but nothing like UTF-8).
In your original post, you showed the characters in "little endian" format, with the 'a' before its corresponding 0; in the example above, you show them in "big endian" format, with the 0 (presumably the '.') before its corresponding 'a'.
If you define:
unsigned short buffer = L"alive:still allive, server?\01";
You'll have a buffer with 16 bits per character, with the characters packed into the second byte of the 16 bits (i.e., big endian format, because ColdFire is big endian), just like in the example above (I assume you wanted an SOH with the \01). And the wide character functions I mentioned earlier are meant to manipulate these types of strings, just like the normal string functions manipulate 8 bit character strings.
If you need them in little-endian format, you just need to loop thru the shorts in the buffer and byteswap them -- byteswapping is a way of life when sending data off-board, since different CPUs have different endiannesses, so typically you'll have one routine that will do that for you just before sending the data out (or after receiving it in) -- remember, you only want to byteswap multi-byte quantities, and you have to know the size of the quantity to do it (in this case, you're byteswapping 16 bit quantities, so it is really easy).