Article View: pl.comp.lang.java
Article #230Unikody i Java
From: Juliusz Chroboczek
Date: Mon, 13 Jan 1997 16:54
Date: Mon, 13 Jan 1997 16:54
59 lines
3210 bytes
3210 bytes
Witam,
Nudno tu (na p.c.ogonki). Jeszcze kilka miesięcy temu odbywała się
interesująca krucjata na temat `ISO contra CeP', a teraz wszyscy już
piszą sobie w ISO... Czy jest jeszcze nadzieja na jakieś interesujące
ogonkowanie?
Niedługo przyjdą Unikody. Dla nie wtajemniczonych, Unicode jest
32-bitowym uniwersalnym kodem zawierającym wszystkie znaki we
wszechświecie. Istnieje 16-bitowy podzbiór Unicode, zwany BMP (Basic
Multilingual Plane), który, niestety, nie zawiera średniowiecznych
herbów chińskich (ale hieroglify chyba są). W BMP działają
wewnętrznie WNT (ostatnia wersja VMS-u, też zwana Windows NT), Plan 9
(więc też Wily), oraz Java.
Już myśleliśmy, że Unikody rozwiążą problem różnych kodowań znaków na
Internecie... Tymczasem Unicode definiuje wiele różnych kodowań:
o UCS-4: 32-bitowe unikody.
o BMP: 16-bitowe kody.
o UTF-8 (czyli `filesystem safe Unicode'): ośmiobitowy format;
siedmiobitowy podzbiór UTF-8 jest równy US-ASCII.
o UTF-7: format siedmiobitowy.
o UTF-1: przestarzały wariant UTF-8.
Czyli, już niedługo, możemy liczyć na następujące kodowania:
o BMP, big-endian, 8bit lub base64. Używane pewnie w środowisku
nie-europejskim.
o BMP, little-endian. Produkowane wyłącznie przez MS-Mail ;->
o UTF-8, 8bit.
o UTF-8, QP: środowisko europejskie (większość znaków łacińskie).
o UTF-8, base64. Na środowsko nie-europejskie.
o UTF-7, 7bit: bardziej oszczędne niż UTF-8 w przypadku transmisji
siedmiobitowych.
US-ASCII będąc podzbiorem UTF-8, więc Amerykanie tranzycji nie
zauważą. Możemy jeszcze liczyć na interesujące dyskusje (jak na
przykład, dlaczego kodów nie należy wysyłać w kolejności
little-endian).
Jedyne środowsko, do którego mam dostęp a działa z Unikodami, to JDK
1.1 beta. Niestety, klasa TextArea unikodów nie kojarzy, więc
musiałem napisać własny widget (subklasa Canvas). Działa, owszem,
mogę czytać i pisać UTF-8 oraz BMP (UTF-7 nie), i nawet widzę znaki
jeżeli mam dobrze skonfigurowane czcionki.
JDK pozwala na pisanie i czytanie w dowolnych kodach. Niestety, o ile
ośmiobitowe kodowania są prawidłowe (między innymi ISO-8859-? oraz
wszelkie CePy), to inne nie bardzo. N.p. ISO-2022 ma tylko znaki
ASCII i japońskie.
Kiedy będę miał czas, to spręże mój programik z przeglądarką Newsów i
zacznę na p.c.ogonki pisać w UTF-8. I tak mnie nikt nie czyta...
Pozdrawiam,
J.
P.S. Cross-posting. W ewentualnym followupie proszę nagłówki obciąć.
Technical Details
Message-ID:
<dh3buatfrc3.fsf@calvay.dcs.ed.ac.uk>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!uw.edu.pl!news.nask.pl!usenetShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!uw.edu.pl!news.nask.pl!usenet From: Juliusz Chroboczek <jec@dcs.ed.ac.uk> Newsgroups: pl.comp.ogonki,pl.comp.lang.java Subject: Unikody i Java Date: 13 Jan 1997 16:54:52 +0000 Organization: Public NewsServer at NASK N.O.C. Lines: 59 Sender: jec@calvay.dcs.ed.ac.uk Message-ID: <dh3buatfrc3.fsf@calvay.dcs.ed.ac.uk> NNTP-Posting-Host: calvay.dcs.ed.ac.uk Mime-Version: 1.0 (generated by tm-edit 7.89) X-Newsreader: Gnus v5.3/Emacs 19.34 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit