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