UTF-16 вывод файла в cmd.исполняемый

chcp 10000
echo hell☺ w☻rld♥! >> "UTF-16 file☺☻♥♦♣♠"

OK, он создает правильный файл, но в содержимом вместо символов Юникода есть вопросительные знаки. Как это исправить?

22
задан 0x6B6F77616C74
16.01.2023 6:15 Количество просмотров материала 3110
Распечатать страницу

2 ответа

ваш код неверен, так как 10000 не является кодовой страницей Unicode. См. Идентификаторы Кодовых Страниц.

10000   macintosh   MAC Roman; Western European (Mac)
...
1200    utf-16      Unicode UTF-16, little endian byte order (BMP of ISO 10646); available only to managed applications
1201    unicodeFFFE Unicode UTF-16, big endian byte order; available only to managed applications
...
12000   utf-32      Unicode UTF-32, little endian byte order; available only to managed applications
12001   utf-32BE    Unicode UTF-32, big endian byte order; available only to managed applications
...
65000   utf-7       Unicode (UTF-7)
65001   utf-8       Unicode (UTF-8)

Я не уверен, почему, но командная строка, похоже, интерпретирует их как управляющие символы при вставке, в частности SOH (начало заголовка, 01), STX (начало текста, 02) и ETX (конец текста, 03).

С положительной стороны, PowerShell, похоже, справляется с этим должным образом. Notepad++ автоматически открыл результирующий текстовый файл как "UCS-2 Little Endian", и он отображаются правильные символы.


хорошо, я понял, почему UTF-8 не работает для меня. Шрифт должен быть установлен в консоль Lucida, так как растровые шрифты по умолчанию не поддерживают Unicode.

1
отвечен Bob 2023-01-17 14:03

и 65001.txt и 1200.txt содержать ту же строку:абв™ но в другой кодировке. Команда:

chcp 65001 & type 65001.txt 

успешно изменяет кодовую страницу, но отображает мусор.

команды:

type 1200.txt

отображаются правильные символы, но команда

for /f %A in ('type 1200.txt') do echo %A

выводит абвT.

так cmd.exe может работать с кодовой страницей 1200 (с некоторыми ограничениями), в то время как я не могу получить удовлетворительные результаты с кодовой страницей 65001.

0
отвечен GCRaistlin 2023-01-17 16:20

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх