Thread View: pl.comp.os.ms-windows.winnt
8 messages
8 total messages
Started by radekp
Sat, 09 Nov 2024 22:42
BAT a kodowanie
Author: radekp
Date: Sat, 09 Nov 2024 22:42
Date: Sat, 09 Nov 2024 22:42
15 lines
1594 bytes
1594 bytes
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.
Re: BAT a kodowanie
Author: radekp
Date: Sat, 09 Nov 2024 22:47
Date: Sat, 09 Nov 2024 22:47
3 lines
1006 bytes
1006 bytes
PS. Dodam, że na początku skryptu mam: chcp 1250 >NUL
Re: BAT a kodowanie
Author: Draco
Date: Sun, 10 Nov 2024 12:39
Date: Sun, 10 Nov 2024 12:39
21 lines
1944 bytes
1944 bytes
W dniu 9.11.2024 o 23:42, radekp@konto.pl pisze: > 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. > Może Notepad++ sobie poradzi. -- Pozdrawiam, Draco
Re: BAT a kodowanie
Author: Grzegorz Niemirowski
Date: Sun, 10 Nov 2024 18:39
Date: Sun, 10 Nov 2024 18:39
32 lines
2939 bytes
2939 bytes
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. Napisałeś w drugim poście, że używasz chcp. Ale w którym skrypcie? Pierwszym czy drugim? Strony kodowe wiersza polecenia i skryptu muszą być zgodne, więc za pomocą chcp trzeba wskazać stronę użytą do zakodowania pliku. Odnośnie pytań 1 i 2, to podobnie jak Draco polecę Notepad++. Używam też PSPad (głównie ze względu na edytor szesnastkowy) i potwierdzam jego dziwne zachowania o których wspomniałeś. Jednak zastanowiłbym się czy na pewno iść w archaiczą DOS-ową stronę kodową i kodować w tę stronę. Może jednach niech te skrypty będą w 1250? Albo pójść za ciosem i wybrać coś współczesnego, czyli UTF-8 (chcp 65001). -- Grzegorz Niemirowski https://www.grzegorz.net/
Re: BAT a kodowanie
Author: radekp
Date: Sun, 10 Nov 2024 22:32
Date: Sun, 10 Nov 2024 22:32
55 lines
3480 bytes
3480 bytes
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.
Re: BAT a kodowanie
Author: Grzegorz Niemirowski
Date: Mon, 11 Nov 2024 11:16
Date: Mon, 11 Nov 2024 11:16
41 lines
3221 bytes
3221 bytes
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/
Re: BAT a kodowanie
Author: radekp
Date: Sun, 24 Nov 2024 10:30
Date: Sun, 24 Nov 2024 10:30
16 lines
1807 bytes
1807 bytes
Mon, 11 Nov 2024 12:16:48 +0100, w <vgsp33$83c$1@news.chmurka.net>, "Grzegorz Niemirowski" <grzegorz@grzegorz.net> napisał(-a): > >> 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. Czyli teoretycznie powinno zadziałać wpisanie chcp 65001 na początku (zamiast 1250) oraz przekonwertowanie .bat na UTF-8 w Notepad++? Żadnych skutków ubocznych? :)
Re: BAT a kodowanie
Author: Grzegorz Niemirowski
Date: Sun, 24 Nov 2024 17:36
Date: Sun, 24 Nov 2024 17:36
15 lines
1745 bytes
1745 bytes
radekp@konto.pl <radekp@konto.pl> napisał(a): > Czyli teoretycznie powinno zadziałać wpisanie chcp 65001 na początku > (zamiast 1250) oraz przekonwertowanie .bat na UTF-8 w Notepad++? Tak > Żadnych skutków ubocznych? :) Zmieniasz stronę kodową wszystkiego co się dzieje w wierszu polecenia, więc jeśli jakiś program wyświetla polskie litery w innym kodowaniu, to będą krzaki. -- Grzegorz Niemirowski https://www.grzegorz.net/
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads