Nästa Föregående Innehållsförteckning

2. Svårigheter med att använda kinesiska på Linux-system

I den här avdelningen görs ett försök att göra en generell beskrivning av de möjliga problemen med att använda kinesiska under Linux; detta gör det möjligt för dig att hitta de huvudsakliga lösningarna, då du stöter på problem. De tillkortakommanden vi stöter på här uppträder faktiskt inte bara under Linux, utan även under andra system. Vidare är hela datorvärlden berörd. Om den här avdelningen inte faller dig i smaken, eller om du har bråttom med att sätta igång med det praktiska, så kan du hoppa fram till avdelningen Visa och mata in kinesiska!

Som vi alla vet är ett kinesiskt ord, i datorer, sammansatt av två bytes. De mest populära kodnings-formaten inkluderar BIG5-koderna, vilka används i Taiwan, och GB-koderna, som används i det huvudsakliga Kina. Den första byten är större än det numeriska värdet 128, alltså vad vi kallar icke-ASCII-kod. (ASCII-koder är koder som är mindre än 128.)

Ja! Och? Här kommer poängerna! P.g.a. olika sorters anledningar så tog många program, förr i tiden, inte hänsyn till möjligheten av icke-ASCII- koder, som en del av data-inmatningen.

Dessa sorters program antar att alla data, som preparerats för bearbetning är begränsad till ASCII-kodernas omfång, och det värsta är, att när de stöter på icke-ASCII-koder, så leder förutsättningen av deras icke- existens till att de avkortas, vilket oftast görs genom att den åttonde biten tas bort. Det här är det så kallade "8-bit clean problem".

Ditt program, t.ex., tar alltid för givet att det du matar in endast består av sju-bitars ASCII-koder. När du skriver in kinesiska ord, tas den åttonde bitten bort, så att indatan, i de fall den består av kinesiska tecken, kommer att bli korrupt.

Kommunikationsprogram, på Internet, kan oftast bara skicka sju-bitars koder. Ett notoriskt exempel är sendmail. sendmail kan bara skicka och ta emot sju-bits meddelanden, vilket har lett till många udda kodnings- metoder, kodningen av vilka orsakar stora störningar hos mottagaren, vilket kännetecknar postande av kinesiska e-brev (som uuencode, base64, QP osv.). (Ganska ofta tänker jag för mig själv, att om de som hittade på e-post kunde ha varit lite mera framsynta, så skulle vi kanske haft mycket mindre problem än vad vi har idag.)

Det här problemet verkar vara mycket mera komplicerat på Internet. Även om du och dina mottagare har era maskiner, med sendmail, inställda för att kunna hantera kinesiska meddelanden, så kan mottagaren få korrupta e-brev i alla fall. Detta beror på att e-brevet, innan det når sin destination, passerar flera servrar på Internet; om en enda av dessa servrars sendmail klipper av den åttonde biten, så förstörs e-brevet. Med program baserade på klient/server-arkitekturen kanske problemet är på klient-sidan, eller på server-sidan, eller på båda.

Applikationer som inte är kapabla att identifiera kinesisk kodning är också ett stort problem, frånsett deras problem att handskas med data som inte är ASCII-kod. Detta beror på att de flesta program (även om de klarar av att handskas med åtta-bitars data) ser ett kinesiskt ord som två individuella bytes. Under vissa förhållanden skapar inte detta några problem, men på vissa punkter kan det leta till beklagliga katastrofer.

Applications which are incapable of identifying the Chinese encoding are also a major problem, apart from being unable to deal with non-ASCII codes' data. That is, most programs(even if they can deal with 8-bit data accurately) all take a Chinese word as two individual bytes. This won't cause problems under some conditions, but it will show an unfortunate disaster under some spots.

Det mest uppenbara problemet är att även om du t.ex. kan mata in kinesiska ord ordentligt, men hela ordet delas upp i två delar, så kan endast en byte (kolumn) tas bort med backspace-tangenten, och den överblivna halvan blir en korrupt kod, om du försöker ta bort ett helt ord, genom att trycka backspace en enda gång. Ett vidare problem är att en texteditor kan byta till ny rad mitt i ett kinesiskt ord, vilket gör koderna korrupta, eller den kan tro att en lång kinesisk mening är som en lång engelsk mening, och låter bli att börja på en ny rad, vilket gör skärmbilden ful och kaotisk.

Det finns ännu värre problem! Vissa kinesiska ord innehåller speciella koder, vilka korresponderar till någon speciell mening. Dessa koder kan göra att vissa program producerar allvarliga fel, eller till och med kraschar, då de stöter på dessa koder.

Nedan ska vi försöka framföra några bestämda metoder, vilka dock är delvisa, icke kompletta och även otillfredsställande. Endast när all mjukvara kan klara av kinesiska, kan kanske dessa problem lösas fullständigt.

Dock, fler och fler program har lagt märke till nödvändigheten av internationalisering, t.ex. så kan de flesta servrars sendmail-program nu klara av åtta-bits e-brev exakt; det är inte bara kinesiska e-brev som behöver åtta-bits tecken, utan även många multi-media e-brev behöver åtta bitar. Massor av program behöver inte längre några modifikationer alls, eller behöver bara konfigureras korrekt, för ändamålet att läsa kinesiska. Samtidigt är det fler och fler som hänger sig åt att framställa kinesisk mjukvara. Låt oss vänta och hoppas.


Nästa Föregående Innehållsförteckning