Shift JIS

Från Wikipedia
Hoppa till: navigering, sök

Shift JIS är inom datatekniken en teckenkodning som stödjer de japanska och engelska språken. Tekniken standardiserades i Japan 1997, under namnet JIS X 0208. Det är traditionellt den vanligaste teckenkodningen för webbsidor på japanska, men Unicode bedöms ersätta Shift JIS på sikt, och 2011 har de blivit ungefär lika vanliga.

Algoritm[redigera | redigera wikitext]

Tecknen lagras som en eller två bytes. Alla ASCII-tecken lagras som sig själva i en byte (utom bland annat omvänt snedstreck som är bytt mot Yen-tecknet). Dessutom lagras Katakana-tecken i en byte i intervallet 0xA1-0xDF. Övriga japanska tecken lagras i två bytes. Den första blir i dessa fall i intervallet 0x81-0x9F eller 0xE0-0xEF, och den andra i intervallet 0x40-0xFC. Det innebär att engelska bokstäver kan förekomma som andra byte i ett japanskt tecken, och inte bara representerande sig själva. Sökalgoritmer måste vara anpassade till Shift JIS annars kan man få falska träffar (till skillnad från UTF-8 som inte har det problemet).
Betydelse för enskilda bytes:

Intervall Betydelse första eller enda byten Betydelse andra byten
0x00-0x3F Enligt ASCII Ej tillåtet
0x40-0x7F
utom 0x5C,0X7C
Enligt ASCII Del av Kanji-tecken
0x5C,0x7C ¥ resp. ‾ Del av Kanji-tecken
0x81-0x9F Första byte i Kanji-tecken Del av Kanji-tecken
0xA0-0xDF Katakana-tecken Del av Kanji-tecken
0xE0-0xEF Första byte i Kanji-tecken Del av Kanji-tecken
0xF0-0xFF Första byte, dock endast i utökningar av standarden Del av Kanji-tecken

Användning[redigera | redigera wikitext]

Shift JIS fungerar i HTML och i programmeringsspråk (japanska stöds bara i textsträngar, inte i taggar mm), eftersom de tecken som markerar slut på fritext och början på en tag eller liknande, alltså <, >, /, " med flera bara lagras som sig själva, inte som en del av ett japanskt tecken. Ett problem är att bakåtsnedstreck visas som Yen-tecknet.

Varianter, andra japanska kodningar[redigera | redigera wikitext]

Det finns flera varianter av Shift JIS. Bland annat används i vissa varianter 2-byte tecken som börjar med bytes i intervallet 0xF3-0xF9, vilket standarden inte stödjer. En del företag har lagt till tecken som inte är standardiserade. Shift JIS är bakåtkompatibel med den ursprungliga japanska 1-bytes teckenkodningen JIS X 0201 från 1969, som bara stödjer ASCII (inte bakåtsnedstreck) och Katakana. Det finns i Japan en annan inkompatibel teckenkodning kallad EUC-JP som datorer kan förväxla med Shift JIS och göra texten oläsbar. Ett slanguttryck för felkodad text är "Mojibake".

Unicode har en helt annan algoritm, men alla tecken som stöds av Shift JIS stöds också av Unicode, och kan omvandla en Shift JIS kodad text till Unicode och sedan tillbaka till Shift JIS och få tillbaka ursprungstexten.