3

Когда я делаю tree > somefile.txt файл действительно содержит выходные данные команды дерева, но линии, нарисованные в консоли, отображаются в виде букв с акцентированием ÃÄÄÄ .

Какую кодировку или режим я должен использовать, чтобы правильно отобразить такой выходной файл, и какой редактор может это сделать?

3 ответа3

4

tree поддерживает ключ /a который использует обычный ASCII:

D:\>tree /a
Folder PATH listing for volume Win7
Volume serial number is BA60-7CCB
D:.
+---3rd
|   +---Android
|   |   +---android-ndk-r5
|   |   |   +---build
|   |   |   |   +---awk
|   |   |   |   +---core
|   |   |   |   +---gmsl
|   |   |   |   \---tools
3

Вероятно, он использует символы рисования линий в кодовой странице 850.

Блокнот не поддерживает эту кодировку, по умолчанию это "ANSI", под которой Microsoft подразумевает Windows-Latin1 или Code-Page-1252, если я правильно помню.

Notepad++ или gVim и т.д. Должны правильно отображать символы.

0

В Notepad++ я смог прочитать их, выбрав "Кодировка" в разделе "Наборы символов"> "Западноевропейский"> «OEM-US».

После этого я мог выбрать "Кодировка"> «Конвертировать в UTF-8», чтобы я мог передавать их в формате, который, надеюсь, все остальные смогут прочитать.

Для справки: моя система - Windows 7 Professional с пакетом обновления 1 (SP1), 64-разрядная (x64), с текущим системным языком, установленным на «Английский (США)».

Кроме того, я полагаю, что этот вопрос содержит больше информации и, если рейтинг выше:сохранение «tree /f /a» приводит к текстовому файлу с поддержкой юникода

Я также запускаю командную строку с параметром "/U" (через ConEmu, если это имеет значение), и ответ на этой странице гласил: либо это не работает должным образом, либо команда дерева по какой-то причине не соблюдает ее. Теперь я нашел этот отрывок из следующего источника, который может объяснить, почему команда tree не записывает кодированный в Unicode текст в файл:

Вывод символов UNICODE (UCS-2 le)
Эти параметры влияют на конвейер или перенаправление в файл.
Наиболее распространенными текстовыми файлами являются ANSI, используйте эти ключи
когда вам нужно конвертировать набор символов.

В моей среде, однако, я использовал символ перенаправителя вывода > для записи в файл, поэтому команда сама этого не делает, а выходные данные все еще не были закодированы в формате Unicode.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .