Diskuze: České znaky v console arguments
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 5 zpráv z 5.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
No, moc ne. Jde o to, že uložený batch v Unicode nefunguje. V jiných znakových sadách program přečte nesmyslnou cestu, po čemž použije tu výchozí. Koukal jsem na třídu Encoding, ale ta nejde použít na cestu k souboru
Tady je vlákno o tom - vypadá to, že CMD - batch je jeden velký bugfest, anebo to prostě není implementované. Vyřešil bych to nějak jinak, třeba vedle programu si dal txt soubor, kde budou ty jména složek a souborů, které chceš zpracovat. Tvoje .exe to pak přečte
Tak pro shrnutí - řešení bylo na dané adrese k nalezení. Protože
aplikaci spouštíte pod windows, kde si přirozeně jako Češi nastavíte
české kódování, jsou tyto znaky ve výchozím nastavení systému brány ze
sady Windows-1250, ve které čte i náš c# program. V Batchi nastavujete
znakovou sadu příkazem chcp.
Finální batch má tedy následující podobu:
@echo off
chcp 1250
start C:\Users\Kája\Documents\Texty\
exit
Zobrazeno 5 zpráv z 5.