Re[2]: Кодировка
От: Аноним  
Дата: 14.05.09 08:42
Оценка:
Здравствуйте, 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 .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.