Символы Echo UTF-8 в пакете окон

Можно ли использовать эхо для создания текстового файла UTF-8? Например, если я хочу сгенерировать файл, содержащий символ "ę"

echo "abcd ę" > out.txt

(командный файл кодируется с помощью UTF-8)

результатом является ANSI-кодированный файл, а символ "ę" преобразуется в "ê". Как я могу убедить "эхо" генерировать файл UTF-8?

Если это невозможно, можно ли изменить кодировку текстового файла после его создания? Есть ли какой-либо инструмент в пакете gnuwin32, который может помочь мне изменить кодировку?

спасибо

Ответ 1

Проблема заключалась в том, что файл содержал строку:

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

а затем Notepad2 и Firefox меняли кодировку, показывая Ä вместо ę. В обычном "Блокноте" файл выглядит нормально. Решением было добавить подпись UTF-8 (знак порядка байтов) в начале файла:

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

(echo1 из gnuwin32)

спасибо за ответы

Ответ 2

Используйте команду chcp для изменения активной кодовой страницы до 65001 для utf-8.

chcp 65001

Ответ 3

Попробуйте запустить CMD.exe с помощью/U-переключателя: он приводит к тому, что все выходные данные будут Unicode вместо ANSI.

Ответ 4

chcp 65001

так как упоминание @cuixiping - хороший ответ, но для изменения, например, шрифта CMD по умолчанию для Lucida Console, например, вы можете прочитать здесь: https://superuser.com/questions/237081/whats-the-code-page-of-utf-8#272184

и, конечно, как упоминалось @BearCode, текст должен быть в utf-8... в моем случае, с Vim под GNU/Linux с удаленным доступом, но notepad ++ тоже прав!

Ответ 5

Появляется так же, как и при смене кодовой страницы, вам нужно записать хотя бы один символ Unicode в вашем первом эхо-сигнале в файл, чтобы файл был сохранен как Unicode. Таким образом, ваш пакетный файл должен храниться в формате Unicode, например, UTF-8.

Ответ 6

Érdemesebb szerintem a chcp 1252 használni. Magyar nyelv nél.