Crie uma string UTF-16 do char *

Então eu tenho string C padrão:

char* name = "Jakub";

E eu quero convertê-lo para UTF-16. Eu descobri que UTF-16 seráo dobro do tempo - um personagem levadois chars.
Então eu crio outra string:

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

Agora, eu acredito que com caracteres ASCII eu vou usar apenas bytes menores, então para todos eles será como74 00 paraJ e assim por diante. Com essa crença, posso fazer esse 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
    }
}

Mas, com esse processo, acabei com"Jkb". Eu não sei como testar isso corretamente - acabei de enviar a string para o Minecraft Bukkit Server. E isso é o que disse ao desconectar:

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

Nota: Estou ciente de que o Minecraft usa o big-endian. O código acima é apenas um exemplo, na verdade, tenho minha conversão implementada na aula.

questionAnswers(3)

yourAnswerToTheQuestion