"stk" <stk.news@kandu.dk> wrote in message
news:sOYr7.4462$sE.331866@news000.worldonline.dk...
> Hej NG.
> Jeg har et program, der læser data fra en database. Hvis jeg skriver
> data til skærmen med
> printf("Data: %s\n", data)
> virker det helt fint. Men hvis jeg skriver til en fil med
> fprintf(MinFil, "Data: %s\n", data)
> bliver de danske karaktere til firkanter. Jeg bruger MSVC++ 6.0
> Er der nogle, der kan hjælpe mig?
> stefan
Du vil blive meget glad for at kigge på nedenstående to funktioner,
problemet er at windows kører med ANSI (Char) tegnsæt,
og DOS/vinduet kører med Oem tegnet.
Så du har en orgTekst med det du vil udskrive, hvis du ikke skal
bruge denne streng (eller rettere dens indhold), så kan du skrive
CharToOem(orgTekst, orgTekst);
Hvis du benytter dig af CString's, så har denne klasse funktionen
indbygget. orgTekst.AnsiToOem();
/Frank
The CharToOem function translates a string into the OEM-defined character
set. (OEM stands for original equipment manufacturer.)
BOOL CharToOem(
LPCTSTR lpszSrc, // pointer to string to translate
LPSTR lpszDst // pointer to translated string
);
The OemToChar function translates a string from the OEM-defined character
set into either an ANSI or a wide-character string. (OEM stands for original
equipment manufacturer.)
BOOL OemToChar(
LPCSTR lpszSrc, // pointer to string to translate
LPTSTR lpszDst // pointer to buffer for translated string
);