Здравствуйте, Аноним, Вы писали:
А>Здравствуйте уважаемые господа!
А> Я хочу спросить знающего человека по кодировке LINUX .
А> Я тут своял некую тестовую приблуду которая выводит слегка непонятные результаты своей работы .
А> Если не трудно обьясните мне, что тут с кодировкой.
А>А> char* instr ;
А> instr = "русские" ; // входные данные память под них выделена раньше.
А>
Копирование строк производится функцией strcpy.
А>А> Buffstr = new char[strlen(instr)] ;
А> Buffstr = instr ;
А>
Ты выделяешь память под Buffstr, но потом присваиваешь указателю другой указатель. Это приведёт к утечке памяти и падению при освобождении памяти.
А>А> // перекодировка в другую кодировку пока не ясно в какую
А> for(int i=0; i<strlen(Buffstr);i++)
А> {
А> cout << (long int)Buffstr[i] << endl ;
А> }
А> cout << Buffstr << endl ;
А>
Тут не происходит перекодировки.
А>Прога выводит вот такие данные :
А>-47
А>-128
А>-47
А>-125
А>-47
А>-127
А>-47
А>-127
А>-48
А>-70
А>-48
А>-72
А>-48
А>-75
А>русские
А>
А>Мне очень интересно почему русские буквы тут представлены двумя числами, какая это может быть кодировка и можно ли свести их к одной цифре?
Сохрани исходник не в UTF-8, а в другой кодировке.
P.S. при вставке C-кода, заключай его внутри тега форматирования ccode.
P.P.S. А зачем несколько очень похожих тем?