Ответы с форумов MSDN

Преобразование строки в массив символов в C++/CLI

Date: 01.10.2017 10:25:23

Не знаю в чем смысл всего этого, но это не работает. Для преобразования String в массив символов нужно использовать Marshal::StringToHGlobalAnsi или Marshal::StringToHGlobalUni, а не циклы

Message 660

Date: 01.10.2017 15:23:00

"Все работает, но только на английском языке"

Оно работает с английскими символами только из-за того, что их коды во всех кодировках одинаковы.

"может Вы подскажете как это сделать"

Нет, так как непонятно, что вы пытаетесь сделать. Я уже написал, какими методами делается преобразование управляемой строки в массив (второй из них корректно обрабатывает любые символы). Если все делать правильно, никакой проблемы с кодировкой не будет.

Message 659

Date: 01.10.2017 16:04:05

UTF8 - мультибайтовая кодировка, она для таких вещей не очень. Сдается мне, вам нужен все-таки UTF-16 и тип wchar_t. Как-то так сделайте

wchar_t* a=(wchar_t*)Marshal::StringToHGlobalUni(str);
wchar_t* b=(wchar_t*)Marshal::StringToHGlobalUni(str2);
wchar_t d[10000];

//работаем с массивами a и b, записываем результат в d

stro=gcnew String(d,0,wcslen(d));

Marshal::FreeHGlobal((IntPtr)a);
Marshal::FreeHGlobal((IntPtr)b);


Автор: VadimTagil

Главная страница - Список тем - Репозиторий на GitHub