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ł!
English
Str. główna > ISO-8859-13 w starszych systemach Windows linii NT
 

Dodanie obsługi kodowania ISO­-8859­-13 w systemie Windows 2000

Pierwszym systemem Microsoftu z obsługą ISO­-8859­-13 jest Windows XP SP2. Oznacza to, że pierwszą wersją programu Outlook Express obsługującą to kodowanie jest 6 SP2 (SP2 dla IE i OE jest częścią SP2 dla XP i nie jest dostępny dla użytkowników starszych wersji Windows). Okazuje się, że można uzyskać dostateczny stopień obsługi tego kodowania w Windows 2000.

Opisane poniżej zmiany wymagają dokonania drobnych zmian w rejestrze systemowym. Prawidłowo przeprowadzone zmiany nie stanowią żadnego zagrożenia dla systemu, ale na wypadek pomyłki zaleca się uaktualnienie dyskietki ratunkowej i upewnienie się, że w przypadku ewentualnych problemów będzie się umiało przywrócić rejestr z zachowanej kopii zapasowej. Dzięki opisanym zmianom uzyskuje się częściową obsługę tego kodowania w programach IE 6 SP1 (sprawdzone w wersji 6.0.2800.1106) i OE 6 SP1 (sprawdzone w wersji 6.00.2800.1807) – IE potrafi prawidłowo wyświetlić strony www używające tego kodowania (które zostało prawidłowo zadeklarowane), OE potrafi prawidłowo wyświetlić list i odpowiedzieć w ISO­-8859­-13 na list kodowany w tym kodowaniu prawidłowo je deklarując. Nie ma natomiast możliwości ręcznego wyboru tego kodowania ani dla stron www, ani dla czytanych, ani dla nowo pisanych listów. Kodowanie to również jest dostępne w konsoli. Kodowanie to w języku MS myląco nazywa się „Estońskie (ISO)”, choć w rzeczywistości w Estonii częściej używane jest kodowanie ISO­-8859­-1 (zachodnioeuropejskie – język estoński nie jest językiem słowiańskim, jest spokrewniony z fińskim), zaś kodowanie to normalnie nosi nazwę „Bałtyckiego” lub „Krajów nadbałtyckich” i jest obowiązującym kodowaniem na Litwie (norma LST ISO/IEC 8859-13).

Obsługa systemowa kodowania ISO­-8859­-13 wymaga zdobycia pliku c_28603.nls. Plik ten jest składnikiem programu instalacyjnego darmowego systemu operacyjnego ReactOS link do str. zewnętrznej, który ma licencję otwartą i może zostać ściągnięty i używany przez każdego do dowolnych celów. Inne źródło to, co oczywiste, pakiet instalacyjny Windows XP z co najmniej SP2 (lub sam dodatek SP2), ale należy pamiętać, że np. ściągnięcie tego pliku z internetu lub skopiowanie go z komputera należącego do znajomego czy też zdobycie go w inny podobny sposób bez zgody MS lub bez posiadania ważnej, niewykorzystanej licencji na Windows XP, narusza prawo. Ponadto należy dokonać zmian w trzech miejscach w rejestrze.

  1. Wspomniany plik c_28603.nls należy skopiować do katalogu %windir%\system32. Typowo będzie to katalog c:\winnt\system32. Znajdują się w nim inne pliki o zbliżonych nazwach, na przykład wykorzystywane dla języka polskiego c_1250.nls i c_28592.nls.
  2. W rejestrze należy znaleźć klucz HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage. W kluczu tym może już być pusty ciąg (typ: REG_SZ) o nazwie 28603, jak go nie ma, należy taki ciąg utworzyć i dać mu taką nazwę. Następnie ciąg należy zmodyfikować, dając mu jako wartość c_28603.nls (czyli nazwę pliku z poprzedniego punktu),
  3. Teraz należy przejść do klucza HKEY_CLASSES_ROOT\MIME\Database\Charset, gdzie należy utworzyć nowy klucz o nazwie iso-8859-13. W tym kluczu należy zrobić dwa wpisy szesnastkowe (typu REG_DWORD), jeden o nazwie Codepage i wartości 0x000004e9 (w systemie dziesiętnym będzie to 1257), a drugi o nazwie InternetEncoding i wartości 0x00006fbb (w systemie dziesiętnym będzie to 28603),
  4. W tym samym kluczu HKEY_CLASSES_ROOT\MIME\Database\Charset można również utworzyć nowy klucz o nazwie latin7, a w nim zrobić jeden wpis typu ciąg (REG_SZ) o nazwie AliasForCharset i wartości iso-8859-13,
  5. Jako ostatni klucz będzie wzięty HKEY_CLASSES_ROOT\MIME\Database\Codepage, w którym należy utworzyć podklucz o nazwie 28603. W tym kluczu należy utworzyć cztery wpisy:
    ciąg (typ REG_SZ) o nazwie BodyCharset i wartości iso-8859-13,
    ciąg (typ REG_SZ) o nazwie Description i wartości np. Estonian (ISO),
    wpis szesnastkowy (typ REG_DWORD) o nazwie Family i wartości 0x000004e9 (w systemie dziesiętnym będzie to 1257),
    wpis binarny (typ REG_BINARY) o nazwie Level i wartości 01 03 00 00.

Poniżej zawartość pliku .reg wpisującego automatycznie wszystkie powyższe wpisy do rejestru. Można go skopiować do notatnika (nie zapomnieć o pustych liniach na końcu, też są potrzebne), zapisać z rozszerzeniem reg, a następnie uruchomić. Trzeba tylko dwa razy kliknąć na OK i zmiany w rejestrze będą samoczynnie wprowadzone.

Dla niedowiarków: Zrzut ekranu IE 6 SP1 wyświetlającego stronę www kodowaną ISO­-8859­-13 wraz z menu wyboru charsetu, zrzut ekranu OE 6 SP1 wyświetlającego list kodowany ISO­-8859­-13. W OE kodowanie pokazywane jest na belce tytułowej.

Prawdopodobnie sposób ten może być też użyty w Windows NT i Windows 2003 Server (oraz XP bez SP2), ale nie jestem w stanie tego sprawdzić. Porady udzielane są bez żadnej gwarancji, i choć rozwiązanie przetestowałem bardzo szeroko u siebie z pozytywnym skutkiem, nie przyjmuję żadnej odpowiedzialności za ewentualne problemy, niestabilną pracę systemu, utratę danych itp. (gdyż praktycznie na 100% problemy te będą spowodowane błędem po stronie dokonującego zmian w systemie). Osoba korzystająca z zamieszczonych tu porad ponosi całkowitą odpowiedzialność za ewentualne złamanie prawa związane ze zdobyciem i użyciem pliku c_28603.nls.

Po dokonaniu powyższych zmian możliwe jest też przełączanie okna konsoli na ISO­-8859­-13. Strona kodowa Windows odpowiadająca kodowaniu ISO­-8859­-13 nosi oznaczenie 28603, można ją uaktywnić poleceniem CHCP 28603.

Jeżeli chodzi o wcześniejsze wersje Windows (9x i ME), być może można na podstawie informacji udostępnianych przez Microsoft zbudować całkiem legalny, własny plik cp_28603.nls. Z uwagi na znikomy udział tych systemów na rynku zapotrzebowanie na to rozwiązanie jest znikome, ale zapraszam do ewentualnego podzielenia się swoimi rezultatami.

Jako ciekawostkę można dodać, że w analogiczny sposób można uruchomić obsługę kodowania ISO­-8859­-16 w oknie konsoli, wykorzystując do tego plik o nazwie c_28606.nls, kodowanie to ma kod MS 28606. Do rejestru wystarczy jedynie dodać wpis w kluczu HKLM\…\NLS\CodePage. Uruchomienie tego kodowania w konsoli odbywa się przy pomocy polecenia CHCP 28606. Procedura ta jednak nie dodaje obsługi tego kodowania ani do IE, ani do OE.

Rozwiązania przetestowane na systemie Windows 2000 SP4 English, wszystkie aktualizacje na listopad 2006, IE 6 SP1 6.0.2800.1106 i OE 6 SP1 6.00.2800.1807.

licznik