как я могу преобразовать строку в двоичные данные с помощью .net

Как я могу преобразовать строковую переменную в переменную двоичных данных, используя .net 1.1?

Я нашел способ сделать это:

ASCIIEncoding^ ascii = gcnew ASCIIEncoding;
String^ unicodeString = L"This Unicode String* contains two characters with codes outside the ASCII code range, Pi (\u03a0) and Sigma (\u03a3).";
array<Byte>^ binaryData = ascii->GetBytes( unicodeString );

person user1064036    schedule 22.03.2012    source источник
comment
Что вы пробовали?   -  person Some programmer dude    schedule 22.03.2012
comment
Какие бинарные данные? Картинка в формате PNG? Целое число, представляющее сумму символов ASCII в строке?   -  person DevSolar    schedule 22.03.2012
comment
у меня есть строка, которую я хочу преобразовать в base64. Мне нужен массив байтов, чтобы использовать Convert::ToBase64String   -  person user1064036    schedule 22.03.2012
comment
См. stackoverflow.com/questions/5664345/string -to-binary-in-c-sharp (третье обращение в Google)   -  person David    schedule 22.03.2012
comment
Вы же понимаете, что это C#?   -  person user1064036    schedule 22.03.2012
comment
@ user1064036: не имеет значения; основные классы .Net можно использовать на всех языках CLI.   -  person MSalters    schedule 22.03.2012
comment
@MSalters: Пожалуйста, не добавляйте теги, с которыми вы не знакомы. Это вопрос .NET 1.1, а не вопрос C++/CLI.   -  person Ben Voigt    schedule 22.03.2012
comment
@BenVoigt: изначально он был помечен как C++ (как в ISO C++), что было совершенно неуместно.   -  person MSalters    schedule 23.03.2012
comment
@MSalters: И удаление тега c++ было правильным решением. Но добавление тега c++-cli ничем не отличалось от тега c++.   -  person Ben Voigt    schedule 23.03.2012


Ответы (2)


В .NET 1.1 у вас есть доступ только к неработающему компилятору Managed Extensions for C++. Он сломан, вы не должны его использовать.

Однако, IIRC, синтаксис будет примерно таким:

System::Byte bytes __gc[] = Encoding::ASCII::GetBytes(inputString);
System::String __gc* base64string = Convert::ToBase64String(bytes);
person Ben Voigt    schedule 22.03.2012

Что насчет этого?

byte[] InputbyteArray = Encoding.UTF8.GetBytes(inputString);
string B64String = Convert.ToBase64String(InputbyteArray)
person Steve    schedule 22.03.2012
comment
вы говорите, что нашли решение - через несколько часов после того, как я ответил, в чем разница между моим ответом и вашим решением? - person Steve; 22.03.2012
comment
Ваше решение не на запрошенном языке. - person Ben Voigt; 22.03.2012
comment
Я не согласен, это был вопрос .net, а не конкретный вопрос С++ или clr. Решение - .net, просто другой синтаксис, что, честно говоря, является тривиальным преобразованием. - person Steve; 22.03.2012
comment
Найти кого-то, кто разбирается в Managed Extensions for C++, нетривиально. - person Ben Voigt; 22.03.2012