Newsgroups: swnet.unix
From: Olof Lagerkvist <n...@email.address>
Date: Mon, 07 May 2007 12:09:19 GMT
Local: Mon, May 7 2007 8:09 am
Subject: Re: UTF-8 - hur funkar det?
Jorgen Grahn wrote: Förstår inte riktigt vart du vill komma här. Konvertering mellan > Hej, > Kan någon antingen peka på dokumentation eller förklara ett par saker > 1. Hur är migrering till UTF-8 tänkt att gå till, för en sån som mej > Jag har sett Debian försöka installera sej i UTF-8, men inte låtit teckenkodning kräver naturligtvis alltid konvertering mellan teckentabeller. Det finns visserligen många finurliga sätt man med varierande grad av säkerhet kan läsa igenom en textfil och avgöra vad det är för teckentabell texten är kodad med, men det finns alltid en inbyggd osäkerhet i sådana verktyg och det är ju alltid det som ska använda texten som måste tolka detta rätt... Alltså, även om det finns verktyg för att konvertera alla dina > 2. Vad påverkas av att ha UTF-8 som del av $LC_CTYPE, egentligen? Nu har du hoppat ner långt under nivån där programmen ska känna till vad > read(2) och write(2) kommer ju att fortsätta hantera oktetter. teckenkodning är. Systemfunktioner som read() och write() ska i alla sammanhang enbart betraktas som binära funktioner och inget annat. T ex har du en variabel som innehåller en textsträng kodad med Latin-1 kommer write() att skriva texten med Latin-1 i filen och är texten kodad med UTF-8 kommer write() att skriva texten med UTF-8 till filen. Konverteringen mellan teckentabeller görs en nivå ovanför, minst. > Är det <wctype.h> från C99 som denna localen jobbar mot, eller vad? Det gör du alltså inte, helt enkelt. På den nivån (undantaget saker som > Eller mer generellt, hur programmerar man i POSIX och C för att hantera filnamn och liknande) finns inte begreppet teckentabell/teckenkodning. Det där måste du lösa ovanför anropen till systemfunktioerna. Se till att få texten kodad i den teckentabell du vill ha i den strängvariabeln du ska spara till filen. Nu är jag väldigt dålig på just Linux men jag antar att det finns snygga lättanvända funktioner för konvertering mellan teckentabeller där också som i de flesta andra operativsystem. > 3. Skrev inte nån av legenderna från tidig Unix (Kernighan? Pike? Det är möjligt, men vad skulle argumentationen gå ut på i så fall? > Henry Spencer?) en artikel om hur UTF-8 är inkompatibel med Unix > designregel "allt är en textfil"? Jag kan svära på att jag läst den, > men hittar den inte nu. Och det kan knappast vara nån ur > Plan 9-gänget eftersom UTF-8 var deras idé. Hantering av filer som inte innehåller ren ASCII-text är ju inte direkt nytt i Unix-världen heller... Kan det ha varit det principiellt knepiga med att tillåta teckenkodningar där inte alla tecken representeras av lika många bitar? > Jag frågar här eftersom jag lever i Unixvärlden, och för att jag Nu skulle jag kunna korsa till s.d.datorkring och börja tjafsa men jag > misstänker att Unix hanterar detta på ett enhetligt sätt, medan > Micrsoft kör vidare med sina sextonbitarstecken eller vad dom nu > hittat på. låter bli det... ;-) Det där med 16-bitarstecken är ju knappast mindre enhetligt än något Fördelen Microsoft har med att ha designat operativsystemskärnan så att Det är två olika vägar som har valts och man kan nog knappast säga att > Och om jag verkar negativ så är det för att jag är negativ ;-) Inte Det kan man ju förstå. Teckenkodning inför en ny dimension av saker att > mot UTF-8 som en kodning för transport av data på exv Usenet, utan > när det kommer in otypat i min traditionella 8859-1-värld. ta hänsyn till, speciellt i programmeringssammanhang. -- You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
| ||||||||||||||