Здравствуйте, Codechanger, Вы писали:
C>Здравствуйте, dima11221122, Вы писали:
D>>здравствуйте. У меня такой вопрос. Есть программа с графичекским интерфейсом, среда VC++ Express Edition 2008. Нужно переконвертировать строку, которую мы считываем из TextBox, в ASCII (или ANSII). при попытке переконвертировать таким способом:
D>>Код C++
D>>
D>>Encoding^ convKey=Encoding::ASCII;
D>>Encoding^ convKey2=Encoding::UTF8;
D>>array<Byte>^unicodeBytes = convKey2->GetBytes(InKey);
D>>array<unsigned char>^ k=Encoding::Convert(convKey2, convKey, unicodeBytes);
D>>
D>>в массиве k вместо символов кириллицы стоят знаки вопроса. Латиница переводится нормально. Я так понимаю, что он не может переконвертировать строку. Помогите, почему такое случается, если получится, дайте рабочий код. Заранее благодарю.
C>Encoding.GetBytes курите. Все строчки в .net хранятся в юникоде. Вам надо взять строку, и с помощью метода GetBytes нужной кодировки получить представление строки в байтах для данной кодировки. Ну а дальше берется этот массив байт и преобразуется в строку с помощью Encoding.GetString.
А разве в моем примере не это реализовано?