Norske tegn i C

Norske tegn i C

Innleggav Soerboe » søn 11.10.2009 22:47

Hei.
Jeg lurer på om det er en grei måte å komme over begrensningen med ascii og char-verdier fra -127 til 127 (som ikke tar med æøå)? Slik at man kan bruke norske tegn også i funksjoner som arbeider med char-verdier.

(unsigned char fungerer jo ikke når en funksjon arbeider med char-verdier)

Brukerens avatar
medlem i 202 måneder
 

Re: Norske tegn i C

Innleggav jebreimo » man 12.10.2009 0:41

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;
}
medlem i 210 måneder
 

Re: Norske tegn i C

Innleggav Soerboe » man 12.10.2009 7:46

Fikk det til nå. Jeg måtte sett tegnsett i terminalen som du sa. Takk for hjelpen.

Brukerens avatar
medlem i 202 måneder
 


Returner til C



Hvem er i Forumene

Registrerte brukere: Ingen registrerte brukere