Специальные символы для int, а затем обратно - PullRequest
2 голосов
/ 04 января 2011

Итак, что я хочу, это, например, преобразовать букву «а» в 97 (как в таблице ASCII), а затем преобразовать 67 в «а».На самом деле я выполняю нагрузку по математике и тому подобному к письму, трактуя его как двоичное число - поэтому переход необходим.Однако для специальных символов он работает не очень хорошо.

char c = 'ÿ';
int i = int(c);
wchar_t wTemp = static_cast<wchar_t>(i);
wchar_t* w = &wTemp;
String^ newI = gcnew String(w);

Этот символ является случайным, который я нашел на изображении (тип символа, который нужно будет прочитать).Это просто выходит как совершенно другой символ.Понятия не имею почему или что делать?

Ответы [ 2 ]

1 голос
/ 04 января 2011

Ваш код мне не совсем подходит, хотя я его не запускал.Вот хороший пример из MSDN, как конвертировать из и в wchar_t:

http://msdn.microsoft.com/en-us/library/ms235631(v=vs.80).aspx

Не думаю, что есть что-то особенное в «специальных» символах.

1 голос
/ 04 января 2011

Символы выше 0x7f (127), вероятно, преобразуются в отрицательные целые значения.Возможно изменить c на без знака:

unsigned char c = 'ÿ';
int i = c;
...