Moro!
Tuossa aiemmin on ollut keskustelun alla se miten c- kielessä saa koodattua ääkköset, yhdessä neuvossa käskettiin etsiä ASCII- taulukosta niiden numerovastaavuudet. Toinen taas (äöäöäö) neuvoi käyttämään samoja koodeja kuin em. taulukossa on, mutta lopussa oli esimerkki
"Tässä on ö" => "T\x84ss\x84 on \x94".
Kysymys kuuluukin jotta mistä ihmeestä noi \x84 ja \x94 oikein pöllähti tähän hommaan? Niillä tosin sain ääkköset toimimaan, toisin kuin ASCII- taulukon antamilla 228, 246, jne. koodeilla.
Vai onko minun taulukon tulkinnassa jotain vikaa kun en löytänyt siitä noita \... juttuja?
Tuossa aiemmin on ollut keskustelun alla se miten c- kielessä saa koodattua ääkköset, yhdessä neuvossa käskettiin etsiä ASCII- taulukosta niiden numerovastaavuudet. Toinen taas (äöäöäö) neuvoi käyttämään samoja koodeja kuin em. taulukossa on, mutta lopussa oli esimerkki
"Tässä on ö" => "T\x84ss\x84 on \x94".
Kysymys kuuluukin jotta mistä ihmeestä noi \x84 ja \x94 oikein pöllähti tähän hommaan? Niillä tosin sain ääkköset toimimaan, toisin kuin ASCII- taulukon antamilla 228, 246, jne. koodeilla.
Vai onko minun taulukon tulkinnassa jotain vikaa kun en löytänyt siitä noita \... juttuja?
Vastaukset 2
Vanhimmat
\x tarkoittaa, että seuraavat yksi tai kaksi merkkiä tulkitaan heksadesimaalinumerona (0, ..9, a, ..f). Yleisesti käytetään myös merkintää 0x84. \x84 on desimaalijärjestelmässä 8*16 4=132 ja \x94 on 9*16 4=148.
http://fi.wikipedia.org/wiki/Heksadesimaalijärjestelmä
Joku jo selittikin sinulle, eli ne ovat vain hexadesimaali muodossa ilmaistuna. Windowsin laskinkin osaa mm. tehdä hexdec muunnoksen (kunhan se on funktiolaskin tilassa). Mainitsemasi koodit (228 = 0xE4 ja 246 = 0xF6) ovat Windowsn ääkösten koodeja (ei DOS:n), joten taulukkosi taitaa olla väärä. Alla on DOS:n ääkkösten koodit C jonossa:
"äöÄÖåÅ" => "\x84\x94\x8E\x99\x86\x8F"
En jaksa noita koodeja kääntää desimaali luvuksi. Otin nuo koodit ihan debuggerilla seuraavasti:
C:\>debug
- e 0100 "äöÄÖåÅ"
- d 0100,0106
155E:0100 84 94 8E 99 86 8F
- q
C:\>