fix(ci): sync_versions.py 在 Windows runner (cp1252 stdout) 崩溃

- 中文 print 撞 cp1252 编码 UnicodeEncodeError, v0.3.19 首次发版 Windows 作业死在同步版本号步骤 (文件写入本身都是 UTF-8 无恙)
- 入口处 stdout/stderr 统一 reconfigure UTF-8 + errors=replace, 本地 PYTHONIOENCODING=cp1252 复现验证通过
This commit is contained in:
shy3130
2026-10-27 18:53:30 +08:00
parent a214555d6b
commit b7549521b3
+6
View File
@@ -58,6 +58,12 @@ def sync(ver: str, *, check: bool = False) -> list[str]:
def main() -> int:
# Windows runner 的 stdout/stderr 默认 cp1252, 中文输出直接 UnicodeEncodeError
# (CI 里杀掉整个作业) — 统一重配为 UTF-8, replace 兜底极端控制台代码页。
for stream in (sys.stdout, sys.stderr):
if hasattr(stream, "reconfigure"):
stream.reconfigure(encoding="utf-8", errors="replace")
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument("--check", action="store_true", help="只报告不一致, 不写文件")
args = parser.parse_args()