Что нового

Проблема при компилировании с иконкой AUTOIT 3.3.14.1 SciTE 29-7-2

pvnn

Осваивающий
Сообщения
279
Репутация
29
Нашел следующий баг в SciTE от 29-7-2015 (AutoIt v3.3.14.0 and BETA v3.3.15.0)

Компилируем скрипт при помощи контекстного меню:
- Выбираем Compile With Option,
- указываем иконку для скрипта Icon
- Compile Script.
В результате создается exe-файл, который прекрасно работает, но в исходнике все русские комментарии превратились в крякозябры.
* Проверял на OS: Windows 7 x86, x64

Пример:
Код:
MsgBox(0,'test','тест') ; test тест


После компилирования
Код:
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=Img\Encrypt.ico
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
MsgBox(0,'test','тест') ; test тест


После удаления SciTE кодировка восстановилась
 

BIOS

Жизнь - игра. График - супер, но сюжет - хреновый.
Сообщения
173
Репутация
69
По умолчанию, SciTE все скрипты сохраняет в кодировке системы (Win-1251)
После прохода Autoit3Wrapper (при использовании иконки) он насильно сохраняет скрипт в кодировке UTF-8 без BOM
А SciTE не может корректно определить UTF-8 без BOM и по-ошибке открывает как Win-1251
Достаточно выбрать UTF-8 в File->Encoding в SciTE
 
Автор
P

pvnn

Осваивающий
Сообщения
279
Репутация
29
BIOS, получается, что перекодировка происходит только в версии AUTOIT 3.3.14.1
До этого, такого же не было?
 

BIOS

Жизнь - игра. График - супер, но сюжет - хреновый.
Сообщения
173
Репутация
69
pvnn
Не могу подтвердить, у меня совпало - обновление версии AutoIT/SciTE и переезд на Win10
Если ты на Win10 не переезжал - значит дело в версии SciTE

P.S. Компиляцией занимается Autoit3Wrapper который входит в расширенный пакет SciTE
 

joiner

Модератор
Локальный модератор
Сообщения
3 013
Репутация
502
тоже сталкивался с таким.
решение:
1. компилировать через Compile Script to .exe
2. использовать SciTE 3.5.5.101 для AutoIt
3. Pragma Compile Directives
я пользуюсь WrapperAutoit3
 

InnI

AutoIT Гуру
Сообщения
4 214
Репутация
1 115
joiner
3. Pragma Compile Directives
Не совсем так. Если мы пишем
Код:
#pragma compile(Console, true)
и вызываем сборку, то в окне Wrapper'а не будет включён режим "Create CUI instead of GUI EXE." Но, если этот режим включить и нажать "Compile Script", то в файл скрипта будет добавлена
Код:
#AutoIt3Wrapper_Change2CUI=y
Другими словами, нужно различать директивы Wrapper'а и [Программа для декомпиляции].
 
Верх