Daniel Resare writes: > Det räcker med LC_ALL (såvida du inte överskuggar med en LC_CTYPE som > inte har svenska tecken i sin teckenuppsättning) Du blandar ihop symbolerna. LC_ALL går före allt annat. Den variabel man normalt sätter är LANG. Den ger ett standardvärde, som man kan ändra i speciella kategorier med LC_<kategori>, typ LC_CTYPE, om man vill. Det känns som det kanske inte skulle skada lite med en förklaring till vad som egentligen händer. LC_MESSAGES väljer vilken meddelandekatalog man skall använda. Det är i princip språket. Men en meddelandekatalog är kodad i någon teckenuppsättning, t.ex. ISO-8859-1 eller UTF-8. Det vore ganska dumt att behöva ha en meddelandekatalog för varje teckenuppsättning, det är ju samma meddelanden i den. Så därför har senare glibc infört att den översätter meddelandena i katalogen till den aktuella teckenuppsättningen "i farten" när de skall användas. Haken är att då måste den veta vilken teckenuppsättning som används, och det styrs av kategorin LC_CTYPE. Så om applikationen väljer bara meddelandekatalog (setlocale(LC_MESSAGES,...)) så gäller fortfarande lokalen "C" för LC_CTYPE, d.v.s. US-ASCII. Och när då libc-funktionen skall översätta meddelandet från den teckenuppsättning det är lagrat i till US-ASCII finns det ingen kod för "Å". Då väljer den att skriva ett frågetecken istället, i brist på bättre. När det här infördes var det en hel del program som drabbades av samma fel, men de har succesivt blivit rättade. Jag hade själv nöjet att felrapportera ett par program (zic tror jag det var) som ingår i själva glibc-paketet, som alltså inte klarade sin egen nyhet! :-) Nu känns det som det mesta har ordnats, men enscript tycks vara ett som är kvar. Tänkte du felrapportera själv, eller vill du ha hjälp?
Arkiv genererat av hypermail 2.1.1.