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

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

Сообщение Anonymous »

Примечание: я пытаюсь написать свою собственную функцию, которая выполняет эту конверсию
Я понимаю, что 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
У меня есть несколько вопросов об этом процессе: < /p>
  • Могу ли я просто поднять строку ASCII в Unicode и повторно воспроизвести точный процесс выше, или он просто заполнит первую половину Байты с байтами ASCII, а остальные оставляют до 0? };
    wchar_t* b = Reinterpret_cast (a); < /p>
    < /li>
    Посмотреть на функцию мультибитетовидехара, я вижу CodePage аргумент, и мне интересно, что это такое. Разве конверсия не совсем то же самое (как я понимаю и выписал выше)? Я думал, что коды символов ASCII были одинаковыми повсюду, но этот аргумент, похоже, говорит иначе, если я правильно понимаю из того факта, что он имеет значения для Mac и Windows.


Подробнее здесь: https://stackoverflow.com/questions/623 ... to-unicode
Ответить

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

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

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

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

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