diff --git a/AGENTS.md b/AGENTS.md index 27a64b7..f2fa70f 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -69,12 +69,15 @@ run.bat запуск в один клик (спрашивае ## Соглашения и подводные камни -- **Кодировка файлов `.bat`:** **UTF-8 без BOM**, окончания строк **CRLF**, и первой - командой после `@echo off` — `chcp 65001 >nul` (консоль в UTF-8, иначе кириллица - в echo/set/for превратится в мусор). Проверено: `echo`, `set /p`, `for /f` и - перенаправление в файл корректно работают с кириллицей под `chcp 65001`. - Пиши через `[System.IO.File]::WriteAllText(path, content -replace "(?nul` + после `@echo off`. Именно **BOM** заставляет `cmd` читать .bat как UTF-8 независимо + от OEM-кодировки консоли (без BOM + `chcp 65001` в `cmd` даёт `????` — cmd читает + файл по OEM-кодировке, а не по `chcp`). BOM + `chcp 65001` проверено: кириллица в + `echo`/`set /p`/`for /f` отображается корректно, `@echo off` работает. Альтернатива + без BOM — включить системную опцию «Beta: Use Unicode UTF-8 for worldwide language + support» (тогда OEM-кодировка = 65001), но это влияет на всю систему (нужен reboot, + могут ломаться legacy-приложения под cp866/cp1251) — поэтому по умолчанию BOM. + Пиши через `[System.IO.File]::WriteAllText(path, content -replace "(?