AProcess.Output кирилицей
Модератор: Модераторы
AProcess.Output кирилицей
Доброго дня!
Windows 10, Lazarus 3.4.
Написал процедуру запуска внешних программ, используя TProcessUTF8.
Запускаю батники. Как получить результат выполнения в AProcess.Output кириллицей?
Windows 10, Lazarus 3.4.
Написал процедуру запуска внешних программ, используя TProcessUTF8.
Запускаю батники. Как получить результат выполнения в AProcess.Output кириллицей?
-
xchgeaxeax
- постоялец
- Сообщения: 198
- Зарегистрирован: 11.05.2023 02:51:40
Как вариант: переключить вывод в консоль у bat файла в UTF8
Со своим текстом я могу так сделать, там система еще свои пишет.xchgeaxeax писал(а):Как вариант: переключить вывод в консоль у bat файла в UTF8
-
xchgeaxeax
- постоялец
- Сообщения: 198
- Зарегистрирован: 11.05.2023 02:51:40
Код: Выделить всё
@echo off
@chcp 65001 > nul
echo Привет.Система перешла на английский язык.xchgeaxeax писал(а):Код: Выделить всё
@echo off @chcp 65001 > nul echo Привет.
-
xchgeaxeax
- постоялец
- Сообщения: 198
- Зарегистрирован: 11.05.2023 02:51:40
У меня она остается на русском
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Снег Север
- долгожитель
- Сообщения: 3067
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
Ustas, какой у вас язык локализации винды и какой язык включен в настройках интерпретации не-юникода? Подозреваю, что английский.
-
xchgeaxeax
- постоялец
- Сообщения: 198
- Зарегистрирован: 11.05.2023 02:51:40
Нет. Это такой прикол у Windows. Проверил на Windows 7 под VirtualBox. В настройках везде выставлен Русский, а система переключается на English при использовании chcp 65001 в консоли. А вот у Wine все нормально. Он сразу начинает использовать преобразование и все хорошо.Снег Север писал(а):Ustas, какой у вас язык локализации винды и какой язык включен в настройках интерпретации не-юникода? Подозреваю, что английский.
Просто полноценная поддержка UTF8 появляется только у Windows 11. У всех предыдущих она кривая.
Еще один выход это просто применять в программе функцию трансляции кодировки текста к TProcess.Output. Главное, чтобы весь текст был в одной кодировке и, разумеется, правильно её указать для функции трансляции.
- Снег Север
- долгожитель
- Сообщения: 3067
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
xchgeaxeax а при чем тут ваша Windows 7, если у топикстартера Windows 10? А десятка и одиннадцатая в отношении консоли и UTF8 не отличаются ничем.
Прогони через LazUTF8.WinCPToUTF8(), должно помочь. Большая часть функций ОС требуют конвертирования.Ustas писал(а):Написал процедуру запуска внешних программ, используя TProcessUTF8.
Запускаю батники. Как получить результат выполнения в AProcess.Output кириллицей?
Что у одного кривая у другого обратная совместимость называется.xchgeaxeax писал(а):Просто полноценная поддержка UTF8 появляется только у Windows 11. У всех предыдущих она кривая.
-
xchgeaxeax
- постоялец
- Сообщения: 198
- Зарегистрирован: 11.05.2023 02:51:40
Sharfik писал(а):Что у одного кривая у другого обратная совместимость называется.
Тогда все равно надо переключаться на 1251. Иначе виндовые утилиты в консоль выплевывают 866. Важно, чтобы кракозябры были в одной CP.Sharfik писал(а):LazUTF8.WinCPToUTF8()
Код: Выделить всё
@chcp 1251 > nul- Снег Север
- долгожитель
- Сообщения: 3067
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
Уже 20 лет не встречал в винде 866. Что я делаю не так?
Не пользуешься русскими сборками.Снег Север писал(а):Уже 20 лет не встречал в винде 866. Что я делаю не так?
не пользуетесь виндой? тока проверил, вин7 - 866, вин8.1 - 866, вин10 - 866, вин11 - 1251Снег Север писал(а):Уже 20 лет не встречал в винде 866. Что я делаю не так?
- Снег Север
- долгожитель
- Сообщения: 3067
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
Нет, разумеется. Использую английский интерфейс и мультиязычные настройки.Сквозняк писал(а):Не пользуешься русскими сборками.
Странно. У меня начиная с семерки всегда UTF8.sts писал(а):не пользуетесь виндой? тока проверил, вин7 - 866, вин8.1 - 866, вин10 - 866, вин11 - 1251
ЗЫ. Правда честно говоря консолью я пользуюсь в среднем один раз в году.
