Jeg har et program hvor jeg kopierer chars fra stdin til en fil vha getc() og putc(). Problemet er at hvis teksten indeholder æ,ø eller å så bliver de udeladt. Ydermere bliver andre specielle tegn som ½ mm. også udeladt. Dog ser det ud til at have noget at gøre med tastatur (eller hvad ved jeg) -opsætningen på brugerens computer, idet æ,ø,å nogle gange går igennem og andre gange bliver skiftet ud med whitespaces. Programmet bliver compileret under SunOS på en sparc maskine, med gcc. Nogen der ved hvordan man kopierer disse tegn korrekt i det givne miljø?
Det kan naturligvis også være terminalens locale, der er gal. Ved ikke om det vil virke på SunOS, men prøv noget i stil med set LANG da eller export LANG=da evt. en_us istedet for da
Jeg vil helst finde en løsning der ikke involverer jeg skal sætte nogen env. variabler (udenfor programmet), og jeg troede jeg kunne bruge setlocale() til det, men enten virker det ikke, eller også er det mig der ikke helt kan finde ud af hvordan man bruger den kommando (hvilket jeg ikke vil udelukke). Jeg har prøvet noget i stil med setlocale(LC_ALL, "da"), og i stedet for "da" har jeg også prøvet "da_DK.ISO8859-1", men jeg skal gerne indrømme det har været skud i tågen for jeg kan ikke dekryptere de man sider der skulle forklare hvordan man bruger setlocale().
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.