Символы 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.