Sida 1 av 1

Unicode i C?

Postat: 12 december 2007, 13:38:23
av speakman
Funderar hur man på bästa sätt gör C-program helt Unicode-säkra.
Med UTF-8 kan man ju ha vanliga char arrays och de flesta vanliga kommandon i string.h. Men printf o.dyl. har ju inget direkt stöd för UTF-8 vilket gör att formaterad text hamnar skevt om man använder t.ex. %20s.

Alternativet är då %ls som då istället förväntar sig en wchar_t array.

wchar_t är idag 16 bitar vilket heller egentligen inte innefattar exakt hela Unicode, men till en stor del av den.

Frågan är hur man bör göra i sina program för att få dom "framtidssäkra"?

Hur hanterar ni Unicode?

Postat: 12 december 2007, 15:01:49
av Icecap
Mitt svar: inte ett skvatt!

Jag har ingen anledning till att använda Unicode och jag ser inte hur det "framtidssäkras" vid att använda det, det är ju en fråga för VAD programmet ska göra.

Det viktigaste för mig i de program som jag gör är att det INTE finns text vilket gör att jag kan nöja mig med att skriva ut värden med ISO-enheter vilket inte behöver vara Unicode.

Postat: 12 december 2007, 15:09:01
av speakman
Nu gällde det mer PC-liknande program.
Jag gör en del projekt med embedded Linux där jag även handhar en stor grafisk display.
Där ska det bl.a. stå enkla instruktioner på det språk som används på platsen, och det kan vara runt i hela Europa.
Därav mitt behov.

Har dock aldrig använt det i C-program själv rakt igenom, så det är rätt mycket att ta in från all dokumentation. Inte minst att ställa om sig för att räkna med variabla storlekar per tecken.

Postat: 12 december 2007, 16:04:46
av blueint
Tror det viktigaste är att skapa rätt abstraktion så att man inte behöver göra stora ändringar senare pga tidigare missbedömningar ang unicode.

Postat: 12 december 2007, 16:19:25
av speakman
Fast man kan ju inte göra mer än vad kompilatorn tillåter, och L-prefixet är det enda jag känner till för att göra färdiga strängar i koden i Unicode.