Ãîñïîäà,êòî-òî ñòàëêèâàëñÿ ñ ïðîáëåìîé çàïèñè äàííûõ â ôàéëèêè ðàçìåðîì ñêàæåì 1500 è ñ êîäèðîâêîé UTF-8 ???
òî ÷òî â ãóãëå íàø¸ë íå ìàãó èñïîëèçîâàòü äà è ïîääåðæèâàåòñÿ ïîçäíèìè âåðñèÿìè VS2005 è.ò.ä.
ïðîáîâàë ñ fopen èëè wfopen .....
[mod="Çëîáíûé"]Äàâàéòå íå áóäåì ïëîäèòü òåìû, çàäàâàÿ îäèí è òîò æå âîïðîñ. Ïåðåíåñ òî, ÷òî íèæå, èç âòîðîé òâîåé òåìû.[/mod]
Ïðîãðàìêà îòêðûâàåò\ñîçäà¸ò (fopen èëè wfopen ) ôàéëèêè è çàïèñûâàåò òóäà îêîëî 1300 êàðàêòåð. Ìíå íóæíî ÷òîá äàííûå çàïèñûâàëèñü êîóä-ïýéäæîì UTF-8.
Âñå ÷òî íàø¸ë â ãóãëå îòíîñèòñÿ ê íîâåéøèì âåðñèÿì VS2005 è.ò.ä. è íå ìàãó èõ èñïîëüçîâàòü....
Ñòàëêèâàëñÿ êòî-òî ñ òàêîé çàäà÷åé, è êàê å¸ ðåøèë? Ïîìîãèòå ïîæàëóñòà è çàðàíåå ñïàñèáî.
Êîäèðîâêà UTF-8 â Visual Studio 6.0
Модератор: Злобный
- TocSYK
- Продвинутый
- Сообщения: 382
- Зарегистрирован: Сб окт 30, 2004 14:14
- Откуда: Êèøèíãòîí ñèòè
- Контактная информация:
FILE * file;
int utf16Length = wcslen( string ) + 1;
int utf8Size = WideCharToMultiByte( CP_UTF8, 0, string, utf16Length, NULL, 0, NULL, NULL );
std::vector< char > utf8Buffer( utf8Size );
int result = WideCharToMultiByte( CP_UTF8, 0, string, utf16Length, &utf8Buffer[0], utf8Size, NULL, NULL );
static const BYTE utf8BOM[] = { 0xEF, 0xBB, 0xBF };
if ( _wfopen( &file, L"E:/filme/1.txt", L"wb,ccs=UTF-8" ) == 0 )
{
fwrite(utf8BOM,1,_countof(utf8BOM),file );
OnOK();
result = fwprintf( file, L"%s\n",static_cast<char *>(&utf8Buffer[0])) ;
fclose( file );
}
äà, ââîáøåìòî óáèäèë âîñïîëüçîâàòñÿ ÂÑ2008 , è íàøîë êàê ñîõðàíèòü ôàéëèê íî åñòü äðóãàÿ ïðîáëåìà.
åñëè ó ìåíÿ char[1000] è ïðè êîíâ. â UTF-8 òo array óâåëè÷èâàåòñÿ äî 1390, è ïðè çàïèñè ýòèõ ñàìûõ 1390 êàðàêò. â ôàéëèêå ïîìèìî èõ åñ÷î çàïèñûâàþòñÿ îêîëî 17 ñhar-oâ ....... ââîáøåì â äåáàãå ïðîêîâûðÿþñü ÷òî è îòêóäà ýòîò ìóñîð ïîåâëÿåòñÿ....
P.S. ìîäåðàòîð, åé áîãó íå áûëî íàìåðåíüÿ ñîçäàâàòü 2 òåìû... èíåò ãëþêàíóë...äóìàë íå ñîçäàëàñü òåìà....
int utf16Length = wcslen( string ) + 1;
int utf8Size = WideCharToMultiByte( CP_UTF8, 0, string, utf16Length, NULL, 0, NULL, NULL );
std::vector< char > utf8Buffer( utf8Size );
int result = WideCharToMultiByte( CP_UTF8, 0, string, utf16Length, &utf8Buffer[0], utf8Size, NULL, NULL );
static const BYTE utf8BOM[] = { 0xEF, 0xBB, 0xBF };
if ( _wfopen( &file, L"E:/filme/1.txt", L"wb,ccs=UTF-8" ) == 0 )
{
fwrite(utf8BOM,1,_countof(utf8BOM),file );
OnOK();
result = fwprintf( file, L"%s\n",static_cast<char *>(&utf8Buffer[0])) ;
fclose( file );
}
äà, ââîáøåìòî óáèäèë âîñïîëüçîâàòñÿ ÂÑ2008 , è íàøîë êàê ñîõðàíèòü ôàéëèê íî åñòü äðóãàÿ ïðîáëåìà.
åñëè ó ìåíÿ char[1000] è ïðè êîíâ. â UTF-8 òo array óâåëè÷èâàåòñÿ äî 1390, è ïðè çàïèñè ýòèõ ñàìûõ 1390 êàðàêò. â ôàéëèêå ïîìèìî èõ åñ÷î çàïèñûâàþòñÿ îêîëî 17 ñhar-oâ ....... ââîáøåì â äåáàãå ïðîêîâûðÿþñü ÷òî è îòêóäà ýòîò ìóñîð ïîåâëÿåòñÿ....
P.S. ìîäåðàòîð, åé áîãó íå áûëî íàìåðåíüÿ ñîçäàâàòü 2 òåìû... èíåò ãëþêàíóë...äóìàë íå ñîçäàëàñü òåìà....