Примечание: я пытаюсь написать свою собственную функцию, которая выполняет эту конверсию
Я понимаю, что char - 1 Байт, в то время как wchar_t < /code> составляет 2 байта. P> 1) Введите текст < /p>
Hello, world
< /code>
2) Получить байты строки < /p>
48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21
< /code>
3) выделяйте память вдвое больше, чем количество байтов < /p>
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
< /code>
4) заполните байт со значением ANSI, пропуская один байт за раз < /p>
48 00 65 00 6c 00 6c 00 6f 00 2c 00 20 00 77 00 6f 00 72 00 6c 00 64 00 21 00
< /code>
У меня есть несколько вопросов об этом процессе: < /strong> < /p>
1) может Я просто бросаю строку ANSI в Unicode и реплицирует ее точный процесс выше, или она просто заполнит первую половину байтов байтами ANSI, а остальные оставляют до 0? < /P>
char a[] = { "Hello, world!" };
wchar_t* b = reinterpret_cast(a);
< /code>
2) Просмотр функции Multibytetowidechar, я вижу аргумент CodePage < /code>, и мне интересно, что это такое. Разве конверсия не совсем то же самое (как я понимаю и выписал выше)? Я думал, что коды символов ASCII были одинаковыми повсюду, но этот аргумент, похоже, говорит иначе, если я правильно понимаю из того факта, что он имеет значения для Mac и Windows.
Подробнее здесь: https://stackoverflow.com/questions/623 ... to-unicode