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: "radekp@konto.pl" <radekp@konto.pl>
Date: Sun, 10 Nov 2024 23:32:23 +0100
Sun, 10 Nov 2024 19:39:49 +0100, w <vgqulm$pe2$1@news.chmurka.net>, "Grzegorz
Niemirowski" <grzegorz@grzegorz.net> napisał(-a):

> radekp@konto.pl <radekp@konto.pl> napisał(a):
> > Mam skrypt/program w Windows Batch. W zasadzie dwa podobne.
> > Jeden jest zakodowany w ASCII (DOS Charset) -- tak zgłasza Lister z Total
> > Commandera.
> > Drugi jest w ANSI/Eastern Europe 1250.
> > W tym pierwszym mogę używać polskich znaków w nazwach plików, w tym
> > drugim nie. Zapewne z powodu tego kodowania.
> > Notatnik Windowsa radośnie pokazuje prawidłowe polskie litery w obu
> > plikach, ale jednak ten drugi skrypt nie daje rady z plikami z
> > PL-literkami.
> > 1. Jak przekodować ten drugi pliki do ASCII/DOS Charset.
> > 2. Co polecacie jako edytor zamiast PSPada? Po pierwsze nie daje sobie z
> > tym rady, po drugie konwersja kodowania w nim raczej nie działa. Po
> > trzecie wyrzuca ostatnio jakieś błędy.
> 
> Coś mi się tu nie zgadza. Notatnik (przynajmniej w Windows 10) nie obsługuje 
> kodowania DOS (w naszym przypadku strony 852) i nie wyświetli poprawnie 
> polskich liter w tym kodowaniu. Obsługuje tylko windowsowe strony kodowe (w 
> naszym przypadku 1250) oraz Unicode z kodowaniami UTF.

Nie będę się sprzeczał, bo zapewne masz rację.
Na poglądzie hex widzę, że ł to $B3.

> Napisałeś w drugim poście, że używasz chcp. Ale w którym skrypcie? Pierwszym 
> czy drugim? 

W obu.

> Strony kodowe wiersza polecenia i skryptu muszą być zgodne, więc 
> za pomocą chcp trzeba wskazać stronę użytą do zakodowania pliku.

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.

> Odnośnie pytań 1 i 2, to podobnie jak Draco polecę Notepad++. Używam też 

Też sobie o nim przypomniałem. Ściągnąłem i wykonał swoją robotę -- odczytał
plik, pokazał jakieś dziwne znaczki w miejscu PL-literek, wpisałem poprawne,
save. Działa.

> w archaiczą DOS-ową stronę kodową i kodować w tę stronę. Może jednach niech 
> te skrypty będą w 1250? 

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 "ś".

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


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