Я понимаю, что char - 1 байт, а WCHAR_T < /code> IS 2 байта. < /p>
Так это то, как произойдет преобразование: < /p>
- Введите текст
Привет, мир - Получить байты строки 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 < /p>
< /li>
Выделите память вдвое больше, чем байт < / 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 00 < /p>
< /li>
Заполните байт со значением ASCII, пропуская один байт за раз < /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
- Могу ли я просто поднять строку ASCII в Unicode и повторно воспроизвести точный процесс выше, или он просто заполнит первую половину Байты с байтами ASCII, а остальные оставляют до 0? };
wchar_t* b = Reinterpret_cast (a); < /p>
< /li>
Посмотреть на функцию мультибитетовидехара, я вижу CodePage аргумент, и мне интересно, что это такое. Разве конверсия не совсем то же самое (как я понимаю и выписал выше)? Я думал, что коды символов ASCII были одинаковыми повсюду, но этот аргумент, похоже, говорит иначе, если я правильно понимаю из того факта, что он имеет значения для Mac и Windows.
Подробнее здесь: https://stackoverflow.com/questions/623 ... to-unicode