Jeśli jesteś właścicielem tej strony, możesz wyłączyć reklamę poniżej zmieniając pakiet na PRO lub VIP w panelu naszego hostingu już od 4zł!

Str. główna > Konfiguracja klientów IRC

Używanie polskich liter na IRC-u

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 link do str. zewnętrznej), 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) link do str. zewnętrznej, wątek w archiwum grupy w Google Groups link do str. zewnętrznej.

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.

1. Konfiguracja wybranych klientów

1.1. ChatZilla

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.

1.2. Opera

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.

1.3. Miranda

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.

1.4. CBIRC

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 link do str. zewnętrznej). Podstawowe informacje:

Konfiguracja:

1.5. XChat

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.

1.6. mIRC

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”.

2. Klienty na strony www i bramki

2.1. CGI:IRC

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 link do str. zewnętrznej.

2.1.1. Bramka sieci IRCnet i EFnet

Pod adresem webchat.xs4all.nl link do str. zewnętrznej 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.

2.1.2. Bramka sieci EFnet

Sieć EFnet pod adresem chat.efnet.org link do str. zewnętrznej 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.

2.2. PJIRC

Darmowy klient napisany w Javie. Działa z dowolną przeglądarką, wymagana Wirtualna Maszyna Javy w wersji 1.1 lub wyższej link do str. zewnętrznej, 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).

3. Konwertery

3.1. Konwerter iconvircproxy

Konwerter iconvircproxy link do str. zewnętrznej 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

3.2. Konwerter efnet-pl

Konwerter efnet-pl link do str. zewnętrznej autorstwa Adama Wysockiego link do str. zewnętrznej 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.

3.3. Zalety stosowania konwertera w porównaniu z klawiaturą i czcionką ISO

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 locieklawiatura + czcionka ISO
dostępność czcionekmożna zastosować dowolną czcionkę zawierającą polskie znakidostę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 wklejanymukł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życiawymaga 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 klientkonieczna 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ówmoż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-1250ograniczona 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.

4. Odsyłacze

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.

licznik