Lista winnt@man.lodz.pl
[Lista archiwów] [Inne Listy]

Re: [WINNT] BAT a kodowanie

To: winnt@man.lodz.pl
Subject: Re: [WINNT] BAT a kodowanie
From: "Grzegorz Niemirowski" <grzegorz@grzegorz.net>
Date: Mon, 11 Nov 2024 12:16:48 +0100
radekp@konto.pl <radekp@konto.pl> napisał(a):
Nie będę się sprzeczał, bo zapewne masz rację.
Na poglądzie hex widzę, że ł to $B3.

To jest Windows-1250. W DOS-owej CP852 literka ł to $88.

Piszę chcp 1250 na początku skryptu i wówczas nie mam problemu z
PL-literkami w nazwach plików. Wyświetlają się poprawnie itp.

To całkiem dobre podejście. Trzeba tylko uważać żeby skrypt miał faktycznie to kodowanie, żeby używany edytor go nie zmienił.

Najwyraźniej skrypt był jednak w 1250, tylko Lister tak rozpoznał. Ale i
przy zmianie z DOS Charset na Windowsa charset nadal widzę PL-literki
poprawnie, przynajmniej "ł" i "ś".

Nie wiem jak działa Lister, ale zmiana kodowania może oznaczać różne rzeczy. Jedna rzecz to jest kodowanie użyte do wyświetlenia pliku. Druga to kodowanie użyte do zapisu pliku. Przykład: zrobiłem sobie dla testu plik z polskimi literami w kodowaniu 852. Otwieram go w Notepad++. Mam krzaki, bo program założył, że plik jest Win1250. Klikam Format -> Zestaw znaków -> środkowoeuropejski -> OEM 852. Literki zaczęły wyglądać poprawnie. Ale czy coś się zmieniło w pliku? Nic. Na dysku jest to, co było. Po prostu Notepad++ zaczął inaczej wyświetlać bajty znalezione w pliku. Dopiero jak kliknę Format -> Konwertuj na format UTF-8 to następuje faktyczna zmiana na dysku. Co ciekawe myślałem, że Konwertuj na format ANSI przekonwertuje na Win1250, ale nic się nie wydarzyło, pozostało 852.

Albo pójść za ciosem i wybrać coś współczesnego,
czyli UTF-8 (chcp 65001).
Chętnie, o ile skrypt nadal będzie poprawnie widział PL-literki w nazwach
plików.

Zasada jest ta sama: kodowanie pliku musi się zgadzać z chcp.
Wspominam o UTF-8 bo jest to kodowanie, które obecnie dominuje, ale nie trzeba na siłę na nie przechodzić, przynajmniej w skryptach. Na pewno nie warto trzymać się 852.

--
Grzegorz Niemirowski
https://www.grzegorz.net/

<Pop. w Wątku] Aktualny Wątek [Nast. w Wątku>