diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index fcd2ef9..cc049fb 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -93,6 +93,8 @@ dependencies { val buildContent = tasks.register("buildContent") { workingDir = rootProject.projectDir.parentFile + environment("PYTHONUTF8", "1") + environment("PYTHONIOENCODING", "utf-8") commandLine("python3", "scripts/build-content.py") inputs.dir(rootProject.projectDir.parentFile.resolve("content")) inputs.file(rootProject.projectDir.parentFile.resolve("scripts/build-content.py")) diff --git a/android/desktop/build.gradle.kts b/android/desktop/build.gradle.kts index bbbbd11..7f36eac 100644 --- a/android/desktop/build.gradle.kts +++ b/android/desktop/build.gradle.kts @@ -41,6 +41,8 @@ val buildContent = tasks.register("buildContent") { workingDir = repoRoot val python = System.getenv("PYTHON")?.takeIf { it.isNotBlank() } ?: if (System.getProperty("os.name").startsWith("Windows")) "python" else "python3" + environment("PYTHONUTF8", "1") + environment("PYTHONIOENCODING", "utf-8") commandLine(python, "scripts/build-content.py", "--out", out.path) inputs.dir(repoRoot.resolve("content")) inputs.file(repoRoot.resolve("scripts/build-content.py")) diff --git a/scripts/build-content.py b/scripts/build-content.py index c8e8b0d..fe5fbcf 100644 --- a/scripts/build-content.py +++ b/scripts/build-content.py @@ -14,6 +14,21 @@ import unicodedata from dataclasses import dataclass, field from pathlib import Path + +def _force_utf8_stdio() -> None: + """Windows defaults stdout to cp1252, which cannot print Czech logs.""" + for stream in (sys.stdout, sys.stderr): + reconfigure = getattr(stream, "reconfigure", None) + if reconfigure is None: + continue + try: + reconfigure(encoding="utf-8", errors="replace") + except (OSError, ValueError): + pass + + +_force_utf8_stdio() + ROOT = Path(__file__).resolve().parents[1] CONTENT = ROOT / "content" OUTS = [ROOT / "android" / "app" / "src" / "main" / "assets" / "content.json"]