Str. główna > Konfiguracja klientów IRC
Na kanałach, na których dozwolone jest używanie polskich liter (liczba ich ciągle rośnie, bo w sumie w XXI wieku pisanie jak za króla Ćwieczka bez polskich liter to kicha), przez wiele lat niepodzielnie panował charset ISO-8859-2. Obecnie wzrasta popularność UTF-8. Nie każdy klient IRC-a pozwala na wybór charsetu, niektóre klienty obsługują UTF-8, ale nie obsługują ISO-8859-2. Klienty działające pod polskim Windowsem, w których brak jest możliwości konfiguracji charsetu, wysyłają i wyświetlają tekst w kodowaniu Windows-1250, nieco różnym od ISO-8859-2. Litery ą, ś, ź, Ą, Ś i Ź (i kilka innych, nieużywanych w języku polskim) zostaną zakodowane i wyświetlone nieprawidłowo. UTF-8 jest w takich klientach zupełnie nieczytelny. Protokół IRC jest 8-bitowy, czyli pozwala na stosowanie znaków spoza ASCII, w tym polskich liter. Nie przewiduje jednak przesyłania informacji o używanym charsecie, jak to ma miejsce w przypadku stron www, poczty, grup dyskusyjnych, feedów RSS (patrz RFC2812 p. 2.2
), aby uniknąć krzaczenia, wszyscy na danym kanale muszą używać tego samego charsetu.
Z drugiej strony istnieją klienty z automatycznym wykrywaniem UTF-8 i kodów 8-bitowych – mają wbudowaną logikę, która interpretuje poprawne ciągi UTF-8 i wyświetla je odpowiednio, zaś inne kody (których nie można zdekodować jako kodów UTF-8) interpretuje jako kodowanie 8-bitowe. Na przykład na polskim kanale taki klient w dużej części wypadków wyświetli prawidłowo polskie litery zakodowane zarówno w ISO-8859-2, jak i UTF-8. Niestety, nie zawsze efekt jest poprawny – niekiedy ciąg interpretowany jako UTF-8 to w rzeczywistości dwa lub trzy znaki 8-bitowe, niektóre klienty mają obsługę jednostronną (przy ustawieniu w kliencie kodowania 8-bitowego UTF-8 może być wykrywany, ale po ustawieniu w kliencie UTF-8 kody 8-bitowe są wyświetlane jako nieznane znaki), na dodatek tylko niektóre klienty pozwalają na zdefiniowanie kodowania 8-bitowego, inne mają na stałe ustawione kodowanie systemowe (np. Windows-1250, gdy klient zainstalowany jest na polskim Windowsie) albo Windows-1252. Nie ma żadnego sensownego rozwiązania wykrywania, jakie kodowanie 8-bitowe zostało użyte. Polskie litery najczęściej są kodowane 8-bitowo w ISO-8859-2 lub Windows-1250, klient IRC-a pod DOS lub konsolowy pod Windows może kodować w CP852, teoretycznie polskie litery mogą zostać zakodowane jeszcze w dwóch innych kodowaniach ISO, jednym innym kodowaniu Windows, dwóch innych kodowaniach DOS… Tak więc istnienie funkcji wykrywania UTF-8 nie jest panaceum na problemy z krzakami i nie zmienia faktu, że jedynym rozwiązaniem o stuprocentowej gwarancji braku krzaków jest używanie przez wszystkich (bez wyjątku) jednego kodowania.
Unikod w transformacji UTF-8 jest obecnie wyborem optymalnym – jest neutralny językowo i kulturowo, może być użyty do zakodowania znaków używanych w przeważajacej większości języków (docelowo wszystkich, prace wciąż trwają), jest stosunko oszczędny, jeżeli chodzi o języki oparte o alfabet łaciński, jest 100% kompatybilny z US-ASCII, nie wymaga przesyłania dodatkowej informacji o użytym kodowaniu. Należy jednak pamiętać, że ostateczną decyzję odnośnie stosowanego kodowania (lub w ogóle używania) polskich liter podejmują opi kanału, przeciw ich decyzji zawsze można zagłosować nogami tworząc konkurencyjny kanał, np. z dodaniem do nazwy utf-8 (#kanal ⇒ #kanal-utf-8).
W marcu 2008 koordynator polskiej sieci IRCnet zaproponował, by w całości przejść na UTF-8: post (na serwerze news)
, wątek w archiwum grupy w Google Groups
.
W opisie klientów poniżej uwzględniono jedynie obsługę UTF-8 i ISO-8859-2 (lub jej brak). Obsługę autodetekcji i niektórych kodowań można uzyskać używając konwertera iconvircproxy, konwerter ten jednakże nie obsługuje Windows-1250, więc najlepiej nadaje się do współpracy z klientem obsługującym UTF-8.
Dostępna jako część pakietu Seamonkey i jako dodatek do przeglądarki Firefox. Podstawowe informacje:
Konfiguracja:

charset należy wpisać ręcznie (nie ma typowej listy rozwijanej). Wielkość liter nie ma znaczenia. Po zaznaczeniu serwera lub kanału pokaże się podobnie wyglądająca karta, na której można ustawić inny charset.
Przeglądarka internetowa mająca m.in. wbudowany klient IRC. Podstawowe informacje:
Konfiguracja:

domyślnie ustawiony jest ten sam charset, co dla stron www bez deklaracji.
Uniwersalny komunikator o bardzo dużych możliwościach. Wtyczka IRC od wersji 0.7.0.0 (?) obsługuje UTF-8. Podstawowe informacje:
Konfiguracja:

charset należy wybrać z listy rozwijanej. Uwaga: decydując się na wybór ISO należy zwrócić uwagę, by wybrać odpowiednie kodowanie – nie należy wybierać kodowania ANSI - Central European ani OEM - Central European, gdyż kodowania te to odpowiednio Windows-1250 i DOS CP852, nie ISO-8859-2.
Klient IRC-a napisany w Javie (może być uruchamiany jak każda inna aplikacja pod warunkiem, że na komputerze zainstalowana jest Wirtualna Maszyna Javy
). Podstawowe informacje:
Konfiguracja:

Klient IRC działający pod Linuksem, Windows i MacOS. Podstawowe informacje:
Konfiguracja: w oknie serwerów zaznaczyc żądany serwer, kliknąć „Edit”, w nowo otwartym oknie z listy rozwijanej opisanej jako „Character set” wybrać żądany charset.
Bardzo znany klient IRC pod Windows, od dawna obecny na rynku. Od wersji 6.17 obsługuje UTF-8. Podstawowe informacje:
Konfiguracja:

Należy zaznaczyć klatkę „UTF-8 display”.
Klient przeznaczony do umieszczenia na stronie www. Obsługuje UTF-8, ISO-8859-2 i liczne inne charsety. Nie wykrywa automatycznie UTF-8 ani kodowania 8-bitowego. Autor strony może dostosować klienta do własnego widzimisię, np. dobrać dostępne sieci, kanały, charsety. Obsługuje komendę zmiany charsetu:
/charset
(np. /charset ISO-8859-2). Strona domowa: www.cgiirc.org
.
Pod adresem webchat.xs4all.nl
dostępna jest bramka dająca dostęp do sieci IRCnet i EFnet. Działa z wykorzystaniem klienta CGI:IRC.
Konfiguracja:

domyślnie lista z charsetami jest schowana (trzeba włączyć widok zaawansowany), domyślne ustawione jest inne kodowanie, nieodpowiednie dla polskich warunków.
Sieć EFnet pod adresem chat.efnet.org
udostępnia bramkę do swojej sieci, opartą o klienta CGI:IRC.
Konfiguracja:

Domyślne kodowanie ustawione jest na UTF-8. Jeżeli nie widać wszystkich powyższych opcji, może być konieczne wybranie pokazania zaawansowanych opcji. ISO-8859-2 może nie być na liście (trzeba wpisać ręcznie w okienko, które pojawi się po wybraniu „Other…”).
Na głównej stronie sieci EFnet dostępny też jest panel logowania do sieci EFnet, osoba wchodząca przez ten panel uruchamia automatycznie tego samego klienta ustawionego na kodowanie UTF-8.
Darmowy klient napisany w Javie. Działa z dowolną przeglądarką, wymagana Wirtualna Maszyna Javy w wersji 1.1 lub wyższej
, działa również z tzw. MS-Javą. Dostarczany z trzema przykładowymi stronami www, kod jest niezgodny ze standardami, ale poprawa jego nie jest trudna. Przeznaczony do umieszczenia na stronie www, ale można równie dobrze używać go uruchamiając lokalnie w przeglądarce z dysku.
Konfiguracja:
W odpowiednim miejscu w kodzie strony należy umieścic linię
<param name="coding" value="2">
(inne możliwe wartości to: 0 – czyste US-ASCII, najbardziej znaczący bit jest ignorowany; 1 – Windows-1252, znaki o kodach unikodu powyżej 255 przesyłane są jako szesnastkowe numery kodów tych znaków, ustawienie domyślne; 3 – lokalne kodowanie systemowe).
Konwerter iconvircproxy
konwertuje w locie między wybranymi kodowaniami. Dostępny dla dla Windows i systemów uniksowych, licencja GPL. Obsługuje ISO-8859-2, UTF-8 i wiele innych charsetów (ale nie obsługuje Windows-1250), może też być skonfigurowany, by wykrywać, czy w czytanej wiadomości użyte zostało kodowanie 8-bitowe, czy UTF-8.
Konfiguracja: połączenie przez konwerter nawiązuje się poleceniem
/server 127.0.0.1:6622
(port, na którym działa konwerter, można zmienić w pliku konfiguracyjnym). Sam konwerter konfiguruje się odpowiednimi wpisami w pliku ircproxy.cfg, który normalnie jest umieszczony w katalogu konwertera. Można ściągnąć przykładowy plik konfiguracyjny dostosowany do potrzeb polskich użytkowników IRC-a korzystających z klienta obsługującego UTF-8 ale nieobsługującego ISO-8859-2 lub autodetekcji UTF-8/ISO-8859-2; plik zawiera komentarze w języku polskim
Konwerter efnet-pl
autorstwa Adama Wysockiego
w locie konwertuje między Windows-1250 (po stronie klienta) i ISO-8859-2 (po stronie serwera), innymi słowy w wysyłanych wiadomościach dokonuje konwersji Windows → ISO, a w czytanych – w drugą stronę. Jest darmowy, rozprowadzany wraz ze źródłami. W przypadku łączenia się z serwerem irc.efnet.pl na standardowych ustawieniach żadna konfiguracja nie jest potrzebna, w innych wypadkach jest niewiarygodnie prosta i polega jedynie na uruchomieniu programu z odpowiednimi przełącznikami. Najczęściej jedynym przełącznikiem wymagającym podania jest URL serwera IRC:
efnet-pl.exe -s <serwer_IRC>
Dodatkowo w kliencie IRC konieczne jest ustawienie localhost lub 127.0.0.1 jako serwera IRC, wszystkie inne ustawienia można pozostawić bez zmian. Inne przełączniki i bardziej szczegółowy opis można znaleźć w archiwum w pliku efnet-pl.txt.
Konwerter konwertuje tylko polskie litery, nie konwertuje innych znaków takich, jak €, ®, ©, „prawidłowych cudzysłowów”, pauz i półpauz (– i —) i wielu innych, więc nie należy ich używać – będą wysłane w charsecie Windows i będą nieczytelne dla ircowników nie używających Windowsa. Należy zachować szczególną ostrożność przy wklejaniu tekstu z edytora tekstu czy strony www.
Tekst pisany z punktu widzenia polskiego użytkownika Windowsa, w którym lokalne kodowanie to Windows-1250.
Jak wiadomo, istnieją dwie metody uzyskania obsługi charsetu ISO-8859-2 w programach pod Windows nieobsługujących automatycznego przekodowywania, w tym w klientach IRC: jedna to omówiony powyżej konwerter konwertujący w locie w sposób całkowicie przezroczysty dla użytkownika, druga zaś to zastosowanie sterownika klawiatury pozwalającego wpisywać polskie znaki zgodnie z ISO-8859-2 i podstawienie specjalnej, zhackowanej czcionki ISO do wyświetlania treści. W przypadku UTF-8 nie ma innej możliwości dodania obsługi tego kodowania do programu, który go nie obsługuje, jak tylko z użyciem konwertera. Oto zestawienie zalet i wad obu rozwiązań:
| konwersja w locie | klawiatura + czcionka ISO | |
|---|---|---|
| dostępność czcionek | można zastosować dowolną czcionkę zawierającą polskie znaki | dostępnych jest zaledwie parę czcionek, większość o nienajlepszej jakości, niektóre z nich to hybrydowe czcionki Windows + ISO – są to czcionki Windows, w których jedynie dodano 6 polskich liter z pozycji różniących się między Windows a ISO |
| użyteczność | pełna – działa z tekstem wpisywanym z klawiatury i wklejanym | układ poprawnie działa tylko dla tekstu wpisywanego z klawiatury, tekst skopiowany i wklejony będzie zawierał krzaki (zostanie wysłany w kodowaniu Windows) |
| łatwość użycia | wymaga jednorazowej zmiany konfiguracji konwertera oraz klienta IRC (podania localhost jako nazwy serwera), po czym program pracuje bezobsługowo i może być automatycznie uruchamiany z pliku wsadowego uruchamiającego konwerter i współpracujący klient | konieczna jednorazowa instalacja klawiatury i czcionki ISO, konieczna jednorazowa konfiguracja współpracującego programu (zmiana czcionki), konieczne pamiętanie, by każdorazowo po otwarciu klienta IRC przełączyć układ klawiatury, brak możliwości prostego wklejenia tekstu skopiowanego np. z notatnika – konieczna uprzednia konwersja do ISO |
| objętość | ok. 100 KB (iconvircproxy), ok. 40 KB (efnet-pl) | zależy od objętości pliku czcionki, ale rzadko kiedy przekracza 60 KB |
| odporność na błędy (możliwość przypadkowego wysłania krzaków) | pełna odporność, zależna wyłącznie od prawidłowej konfiguracji (niewłączenie lub zawieszenie się konwertera powoduje przerwanie komunikacji z serwerem) | duża możliwość w wyniku: przypadkowego przełączenia klawiatury na układ Windows, wklejenia tekstu np. z notatnika, możliwość szczególnie duża w przypadku używania hybrydowej czcionki Windows + ISO uniemożliwiającej kontrolę prawidłowości kodowania wpisywanego lub wklejanego tekstu |
| obsługa innych charsetów | możliwa jest obsługa dowolnych kodowań, choć oczywiście nie będzie możliwe wyświetlenie ani wysłanie znaków spoza lokalnie używanego kodowania Windows-1250 | ograniczona wyłącznie do ISO-8859-2. Hybrydowa czcionka Windows+ISO pozwala jedynie na poprawne wyświetlenie tekstu kodowanego ISO-8859-2 lub Windows-1250, który generalnie zawiera jedynie polskie litery |
Jak widać z powyższego zestawienia, praktycznie zerowym kosztem otrzymuje się znacznie wyższą użyteczność, uniwersalność i dobre zabezpieczenie przed krzaczeniem.
Rozwiązania przetestowane na konwerterze efnet-pl w wersji 2.2, ChatZilli w wersjach 0.9.6–0.9.8.1, Operze w wersjach 9.2–9.27; wtyczce IRC do Mirandy 0.9.3.3, wszystkie pod Windows 2000 SP4 English.