Re[8]: utf8 -> string
От: Pavel Dvorkin Россия  
Дата: 21.10.08 11:49
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>И что? Три байта на символ???


А может, текст в кодировке RGB ?
With best regards
Pavel Dvorkin
Re[8]: utf8 -> string
От: VoidEx  
Дата: 21.10.08 12:00
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>И что? Три байта на символ???

>Проверяли вроде, русские символы занимают 2 байта вместо одного

Все 4.
UTF-32 это. Проверяет он как-то не так.
Re[9]: utf8 -> string
От: Sinclair Россия https://github.com/evilguest/
Дата: 21.10.08 12:21
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>А может, текст в кодировке RGB ?
Ну, тогда нужно перевести в CMYK, а что делать с четырьмя байтами уже известно.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[6]: utf8 -> string
От: neFormal Россия  
Дата: 21.10.08 13:10
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>примеры реального кода и реальных данных.


в общем настрогал маленький тестовый пример:
int main()
{
    wchar_t* c = L"Hello";
    std::ofstream fout("test.txt", ios_base::binary);
    for(int i = 0; i < 5; i++)
    {
     int n = (int)c[i];
     unsigned char uc = 0;
     uc = n;
     fout<<uc;

     uc = n<<8;
     fout<<uc;

     uc = n<<16;
     fout<<uc;

     uc = n<<24;
     fout<<uc;
    }
    fout.close();
    return 0;
}


Английский текст в итоге gedit распознает, как utf32(http://files.rsdn.ru/50126/test3.txt), русский тоже как utf32, но записаны коряблы почему то(http://files.rsdn.ru/50126/test2.txt).. Вероятно вводит не в той кодировке..
...coding for chaos...
Re[8]: utf8 -> string
От: neFormal Россия  
Дата: 21.10.08 13:10
Оценка:
Здравствуйте, Sinclair, Вы писали:

F>>ступил.. после 'т' тоже два нуля..

S>И что? Три байта на символ???

4..
выше было написано..
...coding for chaos...
Re[7]: utf8 -> string
От: vmpire Россия  
Дата: 21.10.08 14:22
Оценка: 6 (1)
Здравствуйте, neFormal, Вы писали:

F>Здравствуйте, Sinclair, Вы писали:


S>>примеры реального кода и реальных данных.


F>в общем настрогал маленький тестовый пример:

F>
F>int main()
F>{
F>    wchar_t* c = L"Hello";
F>    std::ofstream fout("test.txt", ios_base::binary);
F>    for(int i = 0; i < 5; i++)
F>    {
F>     int n = (int)c[i];
F>     unsigned char uc = 0;
F>     uc = n;
F>     fout<<uc;

F>     uc = n<<8;
F>     fout<<uc;

F>     uc = n<<16;
F>     fout<<uc;

F>     uc = n<<24;
F>     fout<<uc;
F>    }
F>    fout.close();
F>    return 0;
F>}
F>


F>Английский текст в итоге gedit распознает, как utf32(http://files.rsdn.ru/50126/test3.txt), русский тоже как utf32, но записаны коряблы почему то(http://files.rsdn.ru/50126/test2.txt).. Вероятно вводит не в той кодировке..


У Вас сдвиг не в ту сторону (<< вместо >>), поэтому после младшего байта выводятся нули.
То, что в файле test2.txt — это нижние байты русских букв в кодировке utf-16 (или ucs-2, что почти одно и то же)
Re[8]: utf8 -> string
От: neFormal Россия  
Дата: 21.10.08 14:49
Оценка:
Здравствуйте, vmpire, Вы писали:

V>У Вас сдвиг не в ту сторону (<< вместо >>)


упс, сглючил +)

V>То, что в файле test2.txt — это нижние байты русских букв в кодировке utf-16 (или ucs-2, что почти одно и то же)


http://files.rsdn.ru/50126/test4.txt
да, utf32..

честно говоря, до последнего не верил, что ввод в utf32, когда вся ось под utf8.. что то я в этой жизни не понимаю..
+ странно, что файлик от Sinclair-а не прочитался..
...coding for chaos...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.