Her er det litt uklart hva du mener. Hvis tegnsettet programmet kjøres med støtter norske tegn så kommer det norske tegn ut. At tekststrenger er char* har historiske årsaker, internt i alle systemkall vil alle char-verdier behandles som om de var unsigned char.
Hvis du benytter Mac og prøver å skrive ut æ, ø eller å i et terminalvindu så går det gjerne dårlig fordi vinduet benytter UTF-8-tegnsettet der alle tegn med verdier mellom 128 og 256 er representert av to byte i stedet for en. Dette kan du forøvrig endre på i valgpanelet til Terminal.
Dette lille programmet vil skrive ut alle tegn mellom 128 og 256 og forhåpentligvis vil du se spørsmålstegn etter "ISO-8859-1" og tegnsymbolene etter "UTF-8" i utskriften, eller omvendt.
- Kode: Merk alt
#include <stdio.h>
int main()
{
int c;
for (c = 160; c <= 255; ++c)
printf("ISO-8859-1: \"%c\" UTF-8: \"%c%c\" %3d 0x%2X\n",
c,
0xC0 | (c >> 6), 0x80 | 0x3F & c, /* UTF-8 */
c,
c);
return 0;
}