fix: resolve Windows Unicode encoding errors in PDF builds

- Add PYTHONUTF8=1 env var to all Windows Docker run commands (PEP 540)
- Fix generate_figure_list.py to explicitly use encoding='utf-8' in
  write_text() instead of relying on system default (cp1252 on Windows)
- The ≈ character (\u2248) in Vol I content triggered charmap codec errors
This commit is contained in:
Vijay Janapa Reddi
2026-03-06 17:18:37 -05:00
parent c492de47a4
commit 059291f243
2 changed files with 5 additions and 1 deletions

View File

@@ -544,6 +544,7 @@ jobs:
docker run --rm `
-e PYTHONPATH=C:\workspace `
-e PYTHONIOENCODING=utf-8 `
-e PYTHONUTF8=1 `
-v "$($PWD.Path):C:\workspace" `
-w "C:\workspace\book\quarto" `
${{ env.CONTAINER_IMAGE }} `
@@ -612,6 +613,7 @@ jobs:
docker run --rm `
-e PYTHONPATH=C:\workspace `
-e PYTHONIOENCODING=utf-8 `
-e PYTHONUTF8=1 `
-v "$($PWD.Path):C:\workspace" `
-w "C:\workspace\book\quarto" `
${{ env.CONTAINER_IMAGE }} `
@@ -698,6 +700,7 @@ jobs:
docker run --rm `
-e PYTHONPATH=C:\workspace `
-e PYTHONIOENCODING=utf-8 `
-e PYTHONUTF8=1 `
-v "$($PWD.Path):C:\workspace" `
-w "C:\workspace\book\quarto\${{ matrix.output_dir }}" `
${{ env.CONTAINER_IMAGE }} `
@@ -795,6 +798,7 @@ jobs:
docker run --rm `
-e PYTHONPATH=C:\workspace `
-e PYTHONIOENCODING=utf-8 `
-e PYTHONUTF8=1 `
-v "$($PWD.Path):C:\workspace" `
-w "C:\workspace\book\quarto\${{ matrix.output_dir }}" `
${{ env.CONTAINER_IMAGE }} `

View File

@@ -392,7 +392,7 @@ def main():
# Write to output directory
output_path = output_dir / 'FIGURE_LIST.txt'
output_path.parent.mkdir(parents=True, exist_ok=True)
output_path.write_text('\n'.join(lines))
output_path.write_text('\n'.join(lines), encoding='utf-8')
print(f"[Figure List] Written: {output_path}", file=sys.stderr)
print(f"[Figure List] Total: {len(merged)} figures", file=sys.stderr)