Что нового

Кодировка при выводе в консоль

Крепыш

Новичок
Сообщения
105
Репутация
2
При выводе на консоль нелатинских символов они печатаются в нечитабельном виде. Приходится применять перекодировку:
Код:
#AutoIt3Wrapper_Change2CUI=y
#include <Encoding.au3>
If $CmdLine[0] > 0 Then ConsoleWrite(_Encoding_ANSIToOEM($CmdLine[1]) & @CRLF)

Есть более универсальное решение, ведь не известно какая локаль установлена на конечном компьютере?
И ещё: как скомпилировать консольный скрипт без иконки? Если не указать ico-файл, Aut2exe всё равно запихнёт в него default ICON.
 
Автор
К

Крепыш

Новичок
Сообщения
105
Репутация
2
Нашёл такой вариант:
Код:
#AutoIt3Wrapper_Change2CUI=y
#include <WinAPI.au3>
If $CmdLine[0] > 0 Then ConsoleWrite(_WinAPI_WideCharToMultiByte($CmdLine[1], 1))

Будет ли он универсальным?
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Крепыш
Будет ли он универсальным?
Вопрос непонятен. Какую цель вы преследуете? Вы хотите, чтобы араб или азиат ввёл командную строку на кириллице?
 
Автор
К

Крепыш

Новичок
Сообщения
105
Репутация
2
InnI сказал(а):
Какую цель вы преследуете? Вы хотите, чтобы араб или азиат ввёл командную строку на кириллице?
Нужно, чтобы скрипт печатал на том же языке, на котором ему передали параметры.
Судя по описанию, это и есть функция _WinAPI_WideCharToMultiByte с параметром 1 - Кодовая страница OEM текущей системы.
 
Верх