Aby w pełni zrozumieć wagę przemiany, która się dokonała, trzeba zdać sobie sprawę z problemów, jakie wiążą się ze stosowaniem polskich znaków we wspomnianych usługach sieciowych. Trzeba również nauczyć się stosować je poprawnie, gdyż nie jest to wcale takie oczywiste, zaś np. list elektroniczny z niepoprawnie zakodowanymi polskimi literami jest dla odbiorcy gorszym "nieszczęściem", niż gdyby nie użyto polskich liter w ogóle - pojawia się bowiem na ekranie jako nieczytelne, niezrozumiałe "śmieci", zmuszające do dużego wysiłku przy próbie ich rozszyfrowania. Niniejszy artykuł ma właśnie służyć obu tym celom: zapoznaniu czytelnika tak z problemami związanymi z polskimi literami w Internecie, jak i dostępnymi narzędziami pozwalającymi te problemy rozwiązać.
W Internecie nie było to jednak takie proste. Do niedawna większość użytkowników Internetu miała doń dostęp za pośrednictwem konta na komputerze Unixowym, na którym pracowało się w trybie terminalowym (wielu korzysta z tego rodzaju dostępu do tej pory). Zaś oprogramowanie do pracy terminalowej, realizujące te same od lat protokoły transmisji (Unix ma wszak już ponad 20 lat!), było w dużej części "po staremu" siedmiobitowe - co oznaczało, że niemożliwe jest przesyłanie znaków o kodach ASCII większych niż 127 (w którym to obszarze kodowane są polskie znaki). Żeby sprawa była jeszcze bardziej skomplikowana, siedmiobitowy z definicji jest sam protokół SMTP, w oparciu o który przesyła się pocztę elektroniczną w Internecie. Wprawdzie wiele nowoczesnych realizacji SMTP bez problemu akceptuje przesyłki zawierające znaki ośmiobitowe, zawsze można jednak trafić na implementację ściśle trzymającą się standardu i nie pozwalającą na takie "nadużycie". Wszystko to sprawiało, że "starzy" użytkownicy Internetu jako rzecz oczywistą traktowali konieczność pisania w poczcie elektronicznej i grupach Usenetowych "po polskawemu", tzn. bez użycia polskich "ogonków", które zastępuje się odpowiednimi literami łacińskimi (np. słowo "żółty" pisze się jako "zolty"). Było to czasami dość niewygodne, np. w przypadku słów takich jak "zadanie" (kto zgadnie, czy w istocie chodzi tu o "zadanie", czy o "żądanie"?), wydawało się jednak nieuniknionym ograniczeniem związanym z charakterem tych usług, i mało kto przewidywał rychłą zmianę tej sytuacji.
Sytuacja była o tyle paradoksalna, że już od dość dawna istniała w tym zakresie Polska Norma - PN-93 T-42118, określająca kody polskich liter w tabeli ASCII w sposób zgodny z międzynarodową normą ISO 8859-2 (norma ISO 8859 zawiera w sumie dziewięć różnych zestawów znaków dla różnych języków; zestaw ISO 8859-2 przeznaczony jest dla języków środkowo- i wschodnioeuropejskich, zaś ISO 8859-1 obejmuje języki zachodnioeuropejskie). Podstawową wadą tej normy było jednakże to, że... pojawiła się ona za późno. Mieliśmy już wówczas mrowie "standardów" DOS-owych, a Microsoft szykował się właśnie do wprowadzenia Windows z CP 1250... Uchwalenie normy zostało odebrane bardzo negatywnie; prasa komputerowa totalnie skrytykowała ją jako normę "martwą", uchwaloną bez oglądania się na praktykę i "standardy faktyczne", normę, której nikt nie będzie stosował. Dopiero później miało okazać się, że w istocie jest nieco inaczej... Póki co, norma została przez środowiska "pecetowe" odrzucona, natomiast - wbrew przewidywaniom, iż norma ta będzie martwa - konsekwentnie zastosowali się do niej producenci systemów Unixowych, i w tych systemach stała się ona faktycznie używanym standardem polskich liter.
Nic więc dziwnego, że kiedy zaczęły się pojawiać pierwsze strony WWW z polskimi literami, kodowane były one właśnie w standardzie ISO. Ich autorzy - w większości administratorzy sieci komputerowych na uczelniach - używali wszak głównie komputerów Unixowych jako swoich narzędzi pracy. Wywołało to oczywiście sprzeciw ze strony użytkowników Windows, domagających się, aby to właśnie kodowanie Windows było standardem na polskich stronach WWW, argumentując to faktem, że wśród oglądających (a nie tworzących!) te strony zdecydowaną większość stanowią korzystający z Windows, a nie z Unixa. Zażarte spory między zwolennikami tych dwu sposobów kodowania (różniących się między sobą nota bene tylko sześcioma znakami: dużymi i małymi literami ą, ś i ź) wciąż od nowa powracały w Internetowych grupach dyskusyjnych, przeradzając się niejednokrotnie w kłótnie na temat "ogólnej" wyższości jednego systemu operacyjnego nad innym. Każda ze stron obstawała przy swoich racjach; część polskich stron WWW kodowana była w ISO, druga część w CP 1250; byli też i tacy, którzy dla uniknięcia kłopotów woleli w ogóle powstrzymywać się od stosowania polskich liter na swoich stronach pisząc nadal po "polskawemu". Jedynym, choć ułomnym, wyjściem z tej sytuacji wydawało się być stosowanie skryptów przekodowujących, jakie wciąż spotkać można na wielu polskich serwerach WWW: pozwalały one oglądać te same strony w różnych wariantach kodowania polskich liter, w zależności od wyboru użytkownika: raz w ISO, raz w CP 1250, a przy okazji także w kodowaniu Macintosha (jakoś w całej tej kłótni między ISO i Windows zapomniano o użytkownikach Maca...) bądź w ogóle bez polskich liter - dla tych, którzy nie mają możliwości zainstalowania ich w swoim systemie.
Norma ISO 8859-2 okazała się zatem wcale nie taka "martwa", jak to przepowiadała jej prasa komputerowa kilka lat temu. W chwili obecnej jest uniwersalnym standardem, który pozwala na odczytywanie tych samych stron WWW w dowolnym środowisku, czy będzie to Unix, Windows czy Macintosh, jeżeli tylko użytkownik dysponuje odpowiednio nową wersją przeglądarki. Problem polskich liter w WWW został rozwiązany. Autorzy niektórych stron zdają się jednak wciąż tego nie dostrzegać, uparcie obstając przy CP 1250 jako jedynym bądź głównym - gdy stosowany jest skrypt przekodowujący - sposobie kodowania. Utrzymywanie takiego stanu rzeczy należy uznać w tej chwili za działanie szkodzące Internetowi i utrudniające, a nie ułatwiające życie jego użytkownikom: stronę zakodowaną w ISO może przeczytać obecnie każdy użytkownik Internetu, stronę zakodowaną w CP 1250 - tylko użytkownik Windows, i to posiadający starą przeglądarkę, bez możliwości przekodowywania. Przeglądarka dostosowana do ISO na stronie kodowanej w CP 1250 pokaże "śmieci" - trzeba będzie przełączyć ją ręcznie na inny standard. Z drugiej strony, wciąż celowe jest (i prawdopodobnie długo będzie) utrzymywanie skryptów pozwalających przekodować zawartość strony na postać "polskawą" - nadal jeszcze jest wiele komputerów, których użytkownicy nie mają w ogóle polskich liter, a chcieliby mieć możliwość oglądania polskich stron WWW. Warto tu wziąć pod uwagę chociażby Polaków zamieszkałych za granicą, korzystających z angielskiej wersji Windows, czy z drugiej strony - komputery w rodzaju wspomnianych już mainframe'ów IBM, wciąż jeszcze obsługujące kilka tysięcy kont użytkowników Internetu w Polsce (np. słynny węzeł PLEARN w Uniwersytecie Warszawskim).
Mechanizm ten nosi nazwę MIME (Multipurpose Internet Mail Extensions), i został opracowany przede wszystkim po to, aby umożliwić przesyłanie pocztą elektroniczną plików binarnych - np. dźwiękowych, graficznych lub programów wykonywalnych. Niejako "przy okazji" zdefiniowano w nim jednak także sposób kodowania w tekstach znaków z "górnej połówki" kodu ASCII tak, aby można było je przesłać za pomocą siedmiobitowego protokołu SMTP. Kodowanie to, określane jako Quoted-Printable, polega na zastąpieniu znaku o kodzie ASCII powyżej 127 szesnastkową wartością jego kodu, poprzedzoną znakiem "="; słowo "pięć" będzie zatem w takim kodowaniu przedstawione jako "pi=EA=E6" (kody polskich liter przedstawiono według ISO 8859-2). Dla uniknięcia kłopotów w sytuacji, gdy kodowany tekst zawiera znaki równości, sam znak "=" również zastępowany jest przez jego kod - "=3D".
Kodowanie to jest zasadniczo niewidoczne dla użytkownika, gdyż dokonuje go automatycznie program pocztowy przy wysyłaniu listu, umieszczając równocześnie w jego nagłówku specjalną informację, która umożliwia - również automatyczne - zdekodowanie go po stronie odbiorcy (oczywiście zakładając, że ma on program pocztowy "rozumiejący" MIME). Na informację tę składają się następujące trzy wiersze:
MIME-Version: 1.0 Content-type: text/plain; charset=ISO-8859-2 Content-transfer-encoding: Quoted-printableSzczególna uwaga należy się w powyższym zapisie fragmentowi "charset=ISO-8859-2". Jest to informacja dla programu odbierającego pocztę, w jakim zestawie znaków zapisany jest tekst. We "wzorcowej" realizacji MIME, program wysyłający pocztę powinien przekodować tekst z "lokalnego" standardu na właściwy dla danego języka kod ISO 8859-x (umieszczając oczywiście stosowną informację w nagłówku), zaś program odbierający na podstawie tej informacji przekodowuje tekst z powrotem z ISO na swój standard lokalny (w szczególności np. może zamieniać teksty na postać "polskawą" dla osób nie mających w systemie polskich liter). Dzięki temu, że teksty w sieci zawsze są w standardzie ISO, możliwe jest przesłanie listu między komputerami stosującymi zupełnie różne kody polskich liter. W podobny sposób standard MIME może być zastosowany również w Usenecie, tutaj jednak, jako że protokół NNTP jest ośmiobitowy, można zrezygnować z kodowania Quoted-Printable i przesyłać bezpośrednio znaki w kodzie ISO.
Oddzielny problem stojący na przeszkodzie powszechnemu stosowaniu MIME stanowiła nieprawidłowa obsługa przesyłek w tym standardzie przez listy dyskusyjne. O ile w prywatnej korespondencji standard ten - nawet w niepełnych implementacjach - dawał się jakoś stosować, o tyle większość listservów obsługujących listy dyskusyjne traktowała przesyłki MIME bardzo brutalnie - obcinając z nagłówka listu owe charakterystyczne trzy wiersze, niezbędne do jego zdekodowania. W efekcie list trafiał do uczestników listy dyskusyjnej w postaci "surowej", pełnej napisów takich jak "=B3=F3d=BC" czy "=BF=F3=B3w" - rozszyfrowywanie tego nie należało do przyjemności.
Wskutek raczej zniechęcających efektów, większość użytkowników rezygnowała zatem z prób ujarzmienia MIME i po staremu pisała po "polskawemu". Przełom nastąpił prawie w tym samym momencie, w którym stało się to w WWW; bo też miało to miejsce za sprawą tych samych programów. Obydwie przeglądarki WWW z możliwością przekodowywania - zarówno produkt Netscape, jak i Microsoftu - zawierały także moduły obsługi poczty elektronicznej i newsów. Również i w tych modułach konsekwentnie wprowadzono możliwość przekodowywania znaków ze standardu lokalnego na ISO i odwrotnie w oparciu o MIME. Tym samym znaczna część użytkowników tych usług dostała "do ręki" narzędzie, pozwalające w poprawny sposób korzystać z polskich liter. Choć trudno mówić o całkowitym rozwiązaniu problemu - w przeciwieństwie do przeglądarek WWW, różnorodność wykorzystywanych w Internecie programów pocztowych jest o wiele większa - to przekroczona została pewna "masa krytyczna"; gdy po raz kolejny w którejś z grup Usenetowych ktoś zaproponował "a może by tak pisać z polskimi literami" - nagle zupełnie nieoczekiwanie pomysł "chwycił"! Praktycznie z dnia na dzień w polskich newsach zaczęły pojawiać się listy z polskimi literami. Przestarzałe oprogramowanie listservów, nie potrafiące obsługiwać MIME, zaczęto w szybkim tempie wymieniać na nowe, i polskie litery pojawiły się także na listach dyskusyjnych. Choć do powszechności stosowania polskich liter - jak już wspominałem - jeszcze daleko, ich obecność w poczcie i Usenecie jest już wyraźna. Co bardzo ważne - zdecydowanie mniej widuje się obecnie przesyłek z niepoprawnie zakodowanymi polskimi literami (jak choćby te wysyłane z PC Eudory). Najwyraźniej prowadzona od kilku lat przez grupę wytrwałych zwolenników polskich liter w Internecie kampania na rzecz (poprawnego!) ich stosowania zaczyna przynosić skutki...
Kilka lat temu kilku entuzjastów stosowania polskich liter w Internecie utworzyło na serwerze WWW krakowskiej Akademii Górniczo - Hutniczej stronę służącą promocji tej idei; zebrano tam różne informacje mające pomóc w znalezieniu odpowiedniego oprogramowania i właściwym jego skonfigurowaniu tak, aby poprawnie obsługiwane były standardy MIME oraz ISO 8859-2. To wszystko zdawało się wtedy być głosem wołającego na puszczy; polskich liter i tak prawie nikt nie używał, a jeżeli nawet to robił, to najczęściej "wiedział lepiej" i nie miał ochoty się do czegokolwiek dostosowywać; to inni mieli się dostosować do używanego przez niego programu i sposobu kodowania. Dopiero w sytuacji obecnej "ogonkowej rewolucji" strona ta, nosząca dumną nazwę Polskiej Strony Ogonkowej (dostępna pod adresem http://www.agh.edu.pl/ogonki/) zyskała należną sobie rangę: jest obecnie głównym źródłem informacji o tym, jakich użyć programów i jak je skonfigurować, aby móc czytać i pisać z polskimi literami. Tam też można znaleźć informacje bardziej szczegółowe niż to, co sygnalizuję w tym tekście.
Jeżeli chodzi o WWW, sytuacja jest dosyć prosta. Dwie czołowe przeglądarki WWW - Netscape Navigator i Microsoft Internet Explorer - mają w swoich najnowszych wersjach wbudowany mechanizm przekodowywania stron WWW ze standardu ISO na CP 1250 (lub odpowiedni inny standard lokalny w przypadku systemów innych niż Windows). Przeglądarki automatycznie rozpoznają, że strona zakodowana jest w ISO 8859-2, jeżeli autor strony umieścił na niej - co jest zalecane - odpowiedni informujący o tym znacznik, zgodnie ze specyfikacją HTTP i HTML. Znacznik ten ma postać
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-2">i powinien być umieszczony zaraz po znaczniku <HTML> otwierającym dokument. Aby polskie litery były widoczne, niezbędne jest oczywiście nakazanie programowi użycia odpowiedniej, zawierającej je czcionki - we właściwej opcji konfiguracyjnej programu (w Netscape jest to Options/General preferences/Fonts) wybieramy dla kodowania "Latin-2" czcionkę z polskimi literami - w polskich Windows z reguły Times New Roman CE. ("Latin-2" w tym przypadku oznacza kodowanie ISO 8859-2, zwane również czasami ISO Latin-2; nie należy tego kojarzyć ze starym DOS-owym standardem Latin-2.) Aby móc poprawnie oglądać również strony nie zawierające omawianego znacznika, należy dodatkowo ustawić ISO 8859-2 jako domyślny zestaw znaków (w Netscape Options/Document Encoding; w MS Internet Explorerze Options/General/Font settings/Languages oraz MIME Encoding). Podczas pracy możliwe jest oczywiście chwilowe przełączenie przeglądarki na inny standard, jeżeli zdarzy się nam np. trafić na stronę zapisaną w CP 1250.
W analogiczny sposób ustawić trzeba ISO jako domyślny standard w module pocztowym i news'owym Netscape Navigatora (jeżeli oczywiście je wykorzystujemy). Standard ten dotyczy poczty wysyłanej; przy odczytywaniu listów właściwy zestaw znaków określany jest na podstawie nagłówków MIME. W programie MS Internet Mail and News - części MS Internet Explorera odpowiedzialnej za obsługę poczty i Usenetu - standard ISO wybierany jest automatycznie, jeżeli zaznaczymy, że chcemy używać MIME. W menu Mail/Options należy wybrać zakładkę Send, po czym kliknąć na przycisk Settings przy opcji Plain text. W wyświetlonym okienku dialogowym wybieramy format MIME i kodowanie Quoted-Printable. Ponieważ MS Internet Mail and News może używać różnych sposobów kodowania w poczcie i w newsach, tę samą czynność należy powtórzyć w menu News/Options, z tym, że można tu wybrać bardziej naturalne dla Usenetu przesyłanie znaków ośmiobitowych, wybierając w okienku dialogowym brak kodowania (Encode text using: None) °. Możliwość wyboru między kodowaniem Quoted-Printable i przesyłaniem ośmiobitowym istnieje także w Netscape Navigatorze (Options/Mail and News Preferences/Composition), jest ona jednakże wspólna dla poczty i Usenetu, co jest mniej wygodne.
Oprócz modułów pocztowych wymienionych przeglądarek WWW możliwość przekodowywania znaków ma także kilka "klasycznych", samodzielnych aplikacji pocztowych. W środowisku PC jest to przede wszystkim Pegasus Mail, dostępny w wersjach dla DOS-a i Windows, który był chyba pierwszym programem wyposażonym w taką możliwość (istnieje także Pegasus Mail dla Macintosha). Jest to program o bardzo bogatych możliwościach, jego konfiguracja jest jednakże nieco trudniejsza niż programów opisanych powyżej, gdyż wymaga samodzielnego przygotowania tablic opisujących sposób konwersji znaków z ISO na standard lokalny (jest to zresztą regułą w samodzielnych programach pocztowych). Gotowe tablice dla stron kodowych 852 (DOS) i 1250 (Windows) znaleźć można na Polskiej Stronie Ogonkowej. Analogiczną możliwość ma stosunkowo mało popularny PC Pine, pracujący w środowisku DOS - jego wadą jest niestety to, że (podobnie jak i jego Unixowy pierwowzór) wymaga serwera pocztowego działającego w protokole IMAP, a nie stosowanym przez większość providerów POP. Przekodowywać znaki potrafi także (wreszcie!) najnowsza wersja jednego z najlepszych i najpopularniejszych newsreaderów dla Windows - Forte Agenta.
Użytkownicy korzystający z poczty w trybie terminalowym na koncie Unixowym także są już w dużo lepszej sytuacji niż kiedyś - najnowsze wersje wszystkich popularnych aplikacji pocztowych i news'owych (elm, pine, tin) obsługują już poprawnie MIME. Niezbędne jest jedynie korzystanie z ośmiobitowego programu terminalowego, jakie również są już szeroko dostępne. Ponieważ standardem polskich liter w Unixie jest ISO, programy pocztowe nie wykonują żadnych przekodowań znaków. Jednak na komputerze, na którym uruchamiamy program terminalowy, możemy mieć inny standard polskich znaków (np. przy pracy w środowisku Windows) i przekodowanie może być niezbędne "po drodze" pomiędzy terminalem i komputerem Unixowym. Istnieją programy terminalowe potrafiące dokonać takiego przekodowania (m.in. spolszczona przez Piotra Piątkowskiego z AGH wersja popularnego DOS-owego klienta telnetu - CUTCP); jeżeli natomiast skorzystanie z nich jest niemożliwe, przekodowania można dokonać na poziomie samego Unixa za pomocą programu "Ogonki", umożliwiającego przekodowywanie "w locie" znaków wprowadzanych z klawiatury i wysyłanych na terminal przez dowolny program.
Choć programów umożliwiających korzystanie z polskich liter nie ma jeszcze zbyt wiele, jest to już realnie możliwe. Z pewnością programów potrafiących obsługiwać MIME będzie przybywać i coraz szerzej w sieci spotykać będziemy teksty napisane z użyciem polskich liter. A zatem, zajrzyjmy na Polską Stronę Ogonkową, zaopatrzmy się w odpowiedni program i... piszmy po polsku!
Kody polskich znaków w standardzie ISO 8859-2 | |||||||
---|---|---|---|---|---|---|---|
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Powrót do wykazu artykułów o Internecie | PSO | Statystyka |