Преобразовать массив символов в Юникод

#c #visual-c #device-driver #wdk #nt-native-api

#c #visual-c #драйвер устройства #wdk #nt-native-api

Вопрос:

Я разрабатываю драйвер устройства на Visual C . Мне нужно преобразовать массив символов в Юникод, а также широкий массив символов в моем драйвере.

Указатель на полезные функции будет оценен по достоинству. Я знаю «RtlInitUnicodeString», который переводит wchar в Юникод, но мне нужна помощь для преобразования простых массивов символов.

Комментарии:

1. Какова кодировка вашего «массива символов»? Какую кодировку Юникода вы хотите использовать на выходе?

2. Если это массив символов, то кодировка уже может быть Unicode (UTF-8). PS термин Юникод не является кодировкой, это общее описание кодовых точек символов. Он может быть закодирован несколькими различными способами (UTF-8/16/32)

Ответ №1:

Если вас устраивает настройка «current system locale» для кодировки ввода и вывода в обычном UTF-16, RtlAnsiStringToUnicodeString должен быть доступен в режиме ядра.

Комментарии:

1. Сначала преобразовал массив символов в ANSI_STRING с помощью «RtlInitAnsiString()», а затем использовал RtlAnsiStringToUnicodeString().