Создать строку UTF-16 из символа *

Итак, у меня есть стандартная строка C:

char* name = "Jakub";

И я хочу конвертировать его в UTF-16. Я разобрался, что UTF-16 будетв два раза длиннее - один персонаж беретдва символы.
Поэтому я создаю еще одну строку:

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

Теперь я считаю, что с символами ASCII я буду использовать только младшие байты, поэтому для всех них это будет74 00 заJ и так далее. С этим убеждением я могу сделать такой код:

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
    }
}

Но с этим процессом я закончил"Jkb", Я не знаю способа проверить это должным образом - я только что отправил строку на Minecraft Bukkit Server. И вот что он сказал при отключении:

13:34:19 [INFO] ОтключениеJKB?? [/127.0.0.1:53215]: устаревший сервер!

Примечание: Я знаю, что Minecraft использует big-endian. Приведенный выше код является просто примером, на самом деле, мое преобразование реализовано в классе.

Ответы на вопрос(3)

Ваш ответ на вопрос