Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: clicker_student on May 22, 2019, 09:36:36 PM
-
Открыл для себя, что функция Print может писать в log.txt, если включить #logfile. До этого я писал с помощью TFWRITE()
Но получил странный результат. Код
#logfile
//--- поищем меню "Свойства"
$property_menu_hwnd = WNDFIND("Свойства")
IF($property_menu_hwnd != 0)
$message = STRCONCAT("Меню 'Свойства' найдено, hwnd=",$property_menu_hwnd)
TFWRITE("log.txt",$message)
PRINT($message, "Print")
Print("Меню 'Свойства' найдено, hwnd=",$property_menu_hwnd, "Print 2")
END_IF
Содержимое лога
Меню 'Свойства' найдено, hwnd=1705966
09:34:45 PM .���� '��������' �������, hwnd=1705966Print
09:34:45 PM ���� '��������' �������, hwnd=1705966Print 2
Искал на форуме - не нашел, чтобы кто-то спрашивал. В какой кодировке он пишет?
-
В справке написано, что LOGWRITE и PRINT - синонимы. Хорошо, проверю
-
Команда print пишет в лог файл по старинке в кодировке Win-1251. Но в момент использования прямой записи с помощью TFWRITE - в начало файло записываетсся BOM - маркер последовательности байтов, в нашем случае utf-8 (EF BB BF). Он и портит все остальное.
Но только кое что и мне не понять, покажу на рисунке.
Для начала создадим файл с помощью такого скрипта.
#logfile
print("тест")
TFWRITE("log.txt","тест")
print("тест")
halt
Потом побайтово глянем на него:
FREADDATA ("log.txt", $arr)
FOR($a=0,$a<arrsize($arr))
print($arr[$a])
END_CYC
halt
(https://i.imgur.com/4bJpemU.png)
-
В справке написано, что LOGWRITE и PRINT - синонимы. Хорошо, проверю
LOGWRITE и PRINT одно и тоже. Запись производится в ANSI кодировке
TFWRITE пишет в UTF-8 из за чего в файле смешиваются две кодировки.
-
А есть ли возможность писать PRINT в UTF-8?
Или просто нельзя смешивать потоки вывода? Но с другой стороны, читать логи в ANSI с веба не получится - будет кракозябра?
Проверил - все нормально.
-
исправим в будущем, приведем все к UTF8
-
Спасибо!
-
Но с другой стороны, читать логи в ANSI с веба не получится - будет кракозябра?
Проверил - все нормально.
Нормально - есои стоит винда русская. Но в принципе, переключением кодировки в браузере лог становится читаемым.