Użytkownik "Adam Lubszczyk" <adam_l@poczta.onet.pl> napisał w wiadomości
d62400d1-d8b9-4c89-b35c-a27d5d7aec12n@googlegroups.com">news:d62400d1-d8b9-4c89-b35c-a27d5d7aec12n@googlegroups.com...
wtorek, 15 lutego 2022 o 09:12:45 UTC+1 Grzegorz Niemirowski napisał(a):
Tak czy siak w Twoim przypadku nie ma rozwiązania. Historycznie pliki
.txt
nie miały nigdzie zapisanego kodowania. Gdy wprowadzono UTF-8 wymyślono
dodawanie odpowiedniego nagłówka, tzw. BOM. Jest on opcjonalny. Stąd
zapisując plik w Notatniku możesz wybrać m.in. UTF-8 oraz UTF-8 z BOM. I
teraz najważniejsze. Jeśli mamy pusty plik txt o rozmiarze 0 bajtów,
czyli
bez BOM, to nie da się określić jakie on ma kodowanie. Nie ma po czym
zgadnąć. Trzeba jakieś przyjąć z góry. I Notatnik przyjmuje UTF-8. Mógłby
przyjmować ANSI, ale nie da się tego wymusić. Jak chcesz mieć domyślne
ANSI,
to zmień program. W Notatniku się nie da.
Da się.
notepad.exe ma opcje /A (ansi) oraz /W (unicode UTF16)
Trzeba zmienić reakcję open dla pliku tekstowego.
Domyślną wartość w kluczu: HKEY_CLASSES_ROOT\txtfile\shell\open\command
z %SystemRoot%\system32\NOTEPAD.EXE %1
na %SystemRoot%\system32\NOTEPAD.EXE /A %1
Niestety notatnik przestaje wykrywać kodowanie pliku i zawsze używa ANSI
to dość logiczne
Może lepiej dodać sobie opcję otwierania w ANSI pod prawy klawisz.
Najprościej (bo potrzeba wartość typu REG_EXPAND_SZ)
zapisać klucz HKEY_CLASSES_ROOT\txtfile\shell\open\commanddo pliku reg .
Wyedytować plik zmieniając ...\shell\open\command na np.
...shell\OtworzANSI\command
Wczytać poprawiony plik reg i w REGEDIT poprawić wartość domyślną dodając
opcję /A
Wpisałem, teraz w kluczu są 4: open, openANSI, print i printto. Jest nowa
pozycja w menu kontekstowym. Używając jej otwiera jako ANSI, chociaż
dla mnie zysk niewielki w porównaniu z "Zapisz jako".
Tak czy inaczej dzięki za wskazówkę, bo można przecież odwrócić role:
open = notepad /A a pod dodatkową pozycją otwieranie "po staremu"
i to mnie na razie urządza.
Arek
|