2012-08-14 8 views
12

Czy mogę użyć echa do wygenerowania pliku tekstowego UTF-8? Na przykład, jeśli chcę, aby wygenerować plik zawierający znak „e”Znaki Echo UTF-8 w oknie wsadowym

echo "abcd ę" > out.txt 

(plik wsadowy jest zakodowany w UTF-8)

wynik jest zakodowany plik ANSI i „e "postać jest przekształcana w" ę ". Jak przekonać "echo" do wygenerowania pliku UTF-8?

Jeśli nie jest to możliwe, czy mogę zmienić kodowanie pliku tekstowego po jego utworzeniu? Czy jest jakieś narzędzie w pakiecie gnuwin32, które może mi pomóc zmienić kodowanie?

dzięki

+0

Kiedy wypróbowałem to, plik out.txt zawierał "abcd ę" jak przeglądał Notatnik, chociaż w oknie wiersza poleceń wyglądało to jak 'abcd ─Ö'. W ogóle nie dostałem "ę". – Neil

Odpowiedz

2

Problem polegał na tym, że plik zawierał wiersz:

<META content="text/html; charset=iso-8859-2" http-equiv=Content-Type> 

a następnie Notepad2 i Firefox zmieniał charset, pokazując zamiast e. W zwykłym Notatniku plik wygląda dobrze. Rozwiązaniem było dodać sygnatura UTF-8 (Byte Order Mark) na początku pliku:

echo1 -ne \xEF\xBB\xBF > out.htm 

(echo1 jest od GnuWin32)

dzięki za odpowiedzi

7

Spróbuj rozpocząć CMD.EXE przełącznikiem/u: to powoduje, że wszystkie rury do wyjścia Unicode zamiast ANSI.

16

Korzystając chcp polecenie zmiany aktywnej strony kodowej na 65001 dla utf-8.

chcp 65001 
+0

dzięki, działa –

+2

nie działa dla mnie; ( – brunobliss

1

chcp 65001

jak wzmianki o @cuixiping jest dobra odpowiedź, ale to wymaga, aby zmienić domyślną czcionkę cmd Lucida Console na przykład, jak można przeczytać tutaj: https://superuser.com/questions/237081/whats-the-code-page-of-utf-8#272184

i oczywiście, jak wspomniano w @BearCode, tekst powinien znajdować się w utf-8 ... w moim przypadku, z Vimem pod GNU/Linux ze zdalnym dostępem, ale notepad ++ ma rację również!