Re[2]: TextBox и однобайтовые кодировки
От: dima11221122  
Дата: 21.02.11 11:15
Оценка:
Здравствуйте, 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.


А разве в моем примере не это реализовано?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.