Crear una cadena UTF-16 desde char *

Así que tengo una cadena C estándar:

char* name = "Jakub";

Y quiero convertirlo a UTF-16. Me di cuenta de que UTF-16 seráel doble de tiempo - un personaje tomados caracteres
Así que creo otra cadena:

char name_utf_16[10];  //"Jakub" is 5 characters

Ahora, creo que con caracteres ASCII solo usaré bytes inferiores, por lo que para todos ellos será como74 00 paraJ y así. Con esa creencia, puedo hacer tal código:

void charToUtf16(char* input, char* output, int length) {
    /*Todo: how to check if output is long enough?*/
    for(int i=0; i<length; i+=2)  //Step over 2 bytes
    {
        //Lets use little-endian - smallest bytes first
        output[i] = input[i];
        output[i+1] = 0;  //We will never have any data for this field
    }
}

Pero, con este proceso, terminé con"Jkb". No conozco ninguna forma de probar esto correctamente: acabo de enviar la cadena a Minecraft Bukkit Server. Y esto es lo que dijo al desconectar:

13:34:19 [INFO] Desconectandojkb?? [/127.0.0.1:53215]: ¡Servidor desactualizado!

Nota: Soy consciente de que Minecraft usa big-endian. El código anterior es solo un ejemplo, de hecho, tengo mi conversión implementada en clase.

Respuestas a la pregunta(3)

Su respuesta a la pregunta