Преобразование C-String в UnicodeC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Преобразование C-String в Unicode

Сообщение Anonymous »

Примечание: я пытаюсь написать свою собственную функцию, которая выполняет эту конверсию

Я понимаю, что 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»