piątek, 4 maja 2007

UTF-8 i cmd.exe

Windows ostatnio mnie zadziwił. Najpierw negatywnie. Jak powszechnie wiadomo obowiązującym kodowaniem jest cp-1250. Jak się okazuje jednak nie w całym Windows. Poczciwa konsola gada w latin2. Istnieje jednak polecenie chcp (link) które zmienia aktywną stronę kodową. Wykonanie polecenia chcp 1250 zmienia kodowanie na "właściwe". Jak się później okazało można zmusić konsolę do poprawnej obsługi utf-8 (i tu moje pozytywne zdziwienie). Służy do tego polecenie chcp 65001. Wykonanie teraz polecenia type poprawnie wyświeli polskie znaki (zakładam, że standardowa czcionka rastrowa została zamieniona na czcionkę Lucida Console). Żeby wymusić na konsoli kodowanie danych do potoku lub pliku w utf-8 należy ja uruchomić z przełącznikiem /U. Proste prawie jak pod Linuxem;)

1 komentarz:

Unknown pisze...

65001, no tak, to oczywiste... WTF, skąd oni wzięli ten numer?