Konwersja kodowania

Na serwerach sieci PIRC (a wcześniej na NPIRCS, i prawdopodobnie żadnej innej :] – nie udało mi się znaleźć innej sieci oferującej taką możliwość) zastosowano system konwersji kodowania polskich znaków. Umieszczam tutaj krótki opis tego systemu.

Tekst między serwerami jest przesyłany w kodowaniu UTF-8, i w takim kodowaniu będziesz go dostawać i możesz go wysyłać do serwera. Jeśli chcesz używać któregoś z dwóch pozostałych polskich kodowań, musisz ustawić odpowiedni tryb (usermode):
  • iso-8859-2: tryb +F
  • windows-1250: tryb +k
Dodatkowy tryb +n nie włącza konwersji kodowania, ale powoduje, że serwer nigdy automatycznie nie ustawi żadnego z +kF – więc będziesz używać utf-8.

Włączenie któregoś z trybów +kF spowoduje, że każdy tekst wysyłany przez Ciebie zostanie skonwertowany na utf-8, a każdy tekst z serwera (który zawsze jest w utf-8), na chwilę przed wysłaniem do Ciebie, zostanie skonwertowany na Twoje kodowanie. Rozwiązanie to umożliwia bezproblemową rozmowę na jednym kanale osób z ustawionymi różnymi systemami kodowania.

System konwersji kodowania byłby mało wygodny, gdyby nie automatyczna detekcja kodowania klientów. Jeżeli nie masz ustawionego żadnego z trybów +Fnk, a wyślesz tekst zawierający polskie znaki w którymś z trzech kodowań, serwer automatycznie ustawi odpowiedni tryb (+F dla iso, +k dla windows, tryb +n nie jest automatycznie ustawiany). Może się zdarzyć błędne wykrycie kodowania windows jako iso, ale serwer natychmiast poprawi +F na +k jeśli tylko zauważy tą nieprawidłowość. Również wykrycie kodowania UTF-8 przy włączonym windows lub iso spowoduje automatyczne wyłączenie +kF.

Każdemu stałemu bywalcowi sieci polecam dodanie polecenia ustawiającego właściwy tryb do zestawu poleceń wykonywanych przy łączeniu z siecią. Ustawianie automatycznego wysyłania poleceń po podłączeniu:

  • mIRC: menu Tools -> Options -> Connect -> Options -> Perform... – w okienku należy wpisać polecenie, na przykład /mode twójnick +n. Pamiętaj o zaznaczeniu opcji 'Enable perform on connect'.
  • xChat (musisz mieć dodaną sieć PIRC do listy sieci): na liście sieci (Network List) po zaznaczeniu PIRC kliknij Edit, i w polu 'Connect command' dopisz polecenie - tym razem bez znaku /, na przykład umode +n.
  • irssi (musisz mieć dodaną sieć PIRC do listy sieci): /network add -autosendcmd "umode +n" PIRC.

Uwaga dla zainteresowanych: polecenie /UMODE +tryb jest tłumaczone przez Twojego klienta (xChat, irssi) na /mode twójnick +tryb i w tej postaci wysyłane do serwera. Program mIRC nie ma polecenia /umode więc w przykładzie napisałem /mode.