Article View: pl.comp.ogonki
Article #19585Re: Kodowanie dla stron WWW - UTF8 czy ISO-8859-2
From: Marcin Frankowski
Date: Thu, 26 Jul 2007 22:04
Date: Thu, 26 Jul 2007 22:04
94 lines
5965 bytes
5965 bytes
Thu, 26 Jul 2007 07:51:28 -0700, Michał Zator <michal.zator@gmail.com>
napisał(a):
> Witam
> Wiem, że na grupie ten temat był już poddawany dyskusji, ale archiwum
> nie dało mi odpowiedzi na wszystkie moje pytania. Wprawdzie aktywność
> tutaj jest delikatnie mówiąc niewielka, ale może ktoś z Was prędzej
> czy później odpowie.
>
> Przygotowuje artykuł na temat, który jest również tematem tej
> wiadomości. W internecie pełno jest starych kursów, które usilnie
> zalecają korzystanie z ISO-8859-2 i wypunktowuja jego przewagi nad
> Windows1250, zaś znaleźć jasną konfrontację ISO i UTF jest niezmiernie
> trudno.
>
> Zatem pytanie do Was - co przemawia za stosowaniem UTF? Na pewno
> internacjonalizacja sieci, wygoda UTF (nawet windowsowski notatnik go
> obsługuje :)), możliwość swodobodnego tworzenia tekstów w wielu
> językach. Coś jeszcze? Co z kolei przemawia na "nie"? Jakie są w tej
> chwili zalety ISO?
>
> Pozdrawiam
> Michał Zator
Parę moich osobistych, luźnych uwag: ISO-8859-2 zawiera mniej znaków od
UTF-8 (co oczywiste). Zawiera polskie litery, ale nie zawiera
większości ładnych znaków interpunkcyjnych (np. prawidłowych
cudzysłowów) ani wielu ciekawych znaków specjalnych. Jeżeli nie używasz
żadnych znaków spoza zestawu ISO, to używanie UTF-8 jest (niewielkim)
marnotrawstwem - w przypadku polskiego tekstu zakodowanie go w UTF-8
zwiększa jego objętość o około 5%.
Od wielu już lat na każdy system dostępne są przeglądarki i edytory
obsługujące UTF-8, więc odpada stary argument o większej dostępności
stron kodowanych ISO. Przy okazji windowsowy Notatnik nie nadaje się do
zapisywania stron www w UTF-8, bo na początek wstawia tzw. BOM. On sam
tego nie pokazuje, ale jest on widoczny w wielu innych edytorach,
niektóre przeglądarki mają problem z wyświetleniem takiej strony,
kłopot może mieć też procesor PHP na serwerze.
Domyślnym kodowaniem dokumentów XHTML jest UTF-8 i UTF-16. Na stronach
W3C można znaleźć w wielu miejscach zalecenia, by preferować stosowanie
UTF-8. Ich kontroler dokumentów HTML (validator) też domyślnie stosuje
UTF-8, gdy w sprawdzanym dokumencie nie może odczytać deklaracji
charsetu.
Są dwie szkoły: pierwsza, starsza, mówi, żeby stosować tylko znaki z
ISO-8859-2, wszystkie inne to zło wprost od szatana i są nikomu
niepotrzebne (a jak powiesz, że Tobie są potrzebne, to się dowiesz, że
się nie liczysz). Druga, nowa, mówi, że należy pisać zgodnie z polskimi
zasadami, w cytatach z obcych języków i słowach zapożyczonych pisać
prawidłowo zagraniczne litery, stosować prawidłowo różne znaki zamiast
jakichś kombinacji czy opisów słownych. Ci stosują UTF-8. Istnieje też
środkowa droga - stronę kodować w ISO, a znaki spoza tego zestawu jako
encje. Jeżeli strona zawiera bardzo niewiele znaków spoza ISO, to
sposób ten może dać niewielkie oszczędności na objętości.
Swego czasu nastąpiła standaryzacja alfabetu łacińskiego w postaci
ASCII. Mimo istnienia konkurencyjnych rozwiązań, takich jak EBCDIC, w
internecie panuje wyłącznie ASCII, co ma swoje ogromne zalety -
jednoznaczność i brak konieczności przekazywania informacji o użytym
kodowaniu. Te same zalety będzie miała rezygnacja z kodowań opartych na
stronach kodowych na rzecz jednego, uniwersalnego UTF-8, ale w tym
wypadku okupione to będzie zwiększeniem objętości dokumentów, w
krańcowych przypadkach o blisko 100% (w przypadku takich języków, jak
m.in. rosyjski i grecki).
Windows-1250 zawiera więcej znaków od ISO-8859-2, ale są one położone w
obszarze znaków sterujących (pozycje 128-159 albo jak kto woli
0x80-0x99), co powoduje problemy w niektórych systemach, w których te
znaki mogą zostać zinterpretowane jako znaki sterujące, co może mieć
nieprzewidziane skutki. Poza tym to jest wewnętrzne kodowanie jednej
firmy (wbrew pozorom nie jest ono normowane amerykańską normą ANSI,
mimo że MS tak sobie to nazywa) i jako takie nie ma na nie miejsca poza
produktami tej firmy, tak jak na kodowania Mac, Amiga i inne nietypowe.
Podobnie jak ISO-8859-2, unikod jest normowany normą międzynarodową o
symbolu ISO-10646. Jako ciekawostkę dodam, że ASCII jest normowane
normą międzynarodową ISO-646. Czytałem swego czasu artykuł, wg którego
zbieżność numerów dwóch ostatnich norm jest nieprzypadkowa. Niestety,
nie mogę sobie przypomnieć tytułu ani źródła, może znajdziesz coś na
ten temat w internecie.
Ciekawych i przydatnych znaków w unikodzie jest bardzo wiele, wybrane
możesz obejrzeć na stronie
http://konfiguracja.pochta.ru/webpl/encje.html (użyj nowoczesnej
przeglądarki, nie IE, w razie potrzeby zainstaluj też jakąś czcionkę
zawierającą te symbole, np. DejaVu lub Fixedsys Excelsior).
--
Marcin Frankowski
chcesz wysłać maila, to kliknij: http://www.cerbermail.com/?GwMBsEhHr8
Na kłopoty z konfiguracją OE i z polskimi literami w poczcie,
newsach i na www: http://konfiguracja.pochta.ru/
Technical Details
Message-ID:
<1xl9c5r59lpdr.dlg@komp.pana.marcina>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mailReferences:
<1185461488.269904.162390@19g2000hsx.googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mail From: Marcin Frankowski <ab@anti.spam.com.invalid> Newsgroups: pl.comp.ogonki Subject: Re: Kodowanie dla stron WWW - UTF8 czy ISO-8859-2 Date: Fri, 27 Jul 2007 10:04:40 +1200 Organization: Onet.pl Lines: 94 Message-ID: <1xl9c5r59lpdr.dlg@komp.pana.marcina> References: <1185461488.269904.162390@19g2000hsx.googlegroups.com> NNTP-Posting-Host: 203.173.153.118 Mime-Version: 1.0 X-Trace: news.onet.pl 1185492675 16636 203.173.153.118 (26 Jul 2007 23:31:15 GMT) X-Complaints-To: usenet@news.onet.pl NNTP-Posting-Date: Thu, 26 Jul 2007 23:31:15 +0000 (UTC) X-Sender: juzBFLCkRTDI/Q/jOKrqtJBJ797tdgMa User-Agent: 40tude_Dialog/2.0.15.1 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit