20250904-初步功能已完成

This commit is contained in:
2025-09-09 20:45:02 +08:00
parent 71e9bf9045
commit e2e9e0b348
8 changed files with 171 additions and 66 deletions

View File

@@ -206,6 +206,12 @@
# return True
# return False
# -*- coding: utf-8 -*-
import datetime
import io
@@ -219,22 +225,57 @@ from pathlib import Path
import requests
# ========= 全局:强制 UTF-8打包 EXE / 无控制台也生效) =========
# def _force_utf8_everywhere():
# os.environ.setdefault("PYTHONUTF8", "1")
# os.environ.setdefault("PYTHONIOENCODING", "utf-8")
# # windowed 模式下 stdout/stderr 可能没有 buffer这里做保护包装
# try:
# if getattr(sys.stdout, "buffer", None):
# sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding="utf-8", errors="replace")
# except Exception:
# pass
# try:
# if getattr(sys.stderr, "buffer", None):
# sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding="utf-8", errors="replace")
# except Exception:
# pass
#
# _force_utf8_everywhere()
# ========= 全局:强制 UTF-8 + 关闭缓冲(运行期立刻生效) =========
def _force_utf8_everywhere():
os.environ.setdefault("PYTHONUTF8", "1")
# 等价于 -u让 stdout/stderr 无缓冲
os.environ.setdefault("PYTHONUNBUFFERED", "1")
os.environ.setdefault("PYTHONIOENCODING", "utf-8")
# windowed 模式下 stdout/stderr 可能没有 buffer这里做保护包装
# 若是 3.7+,优先用 reconfigure 实时改流
try:
if getattr(sys.stdout, "buffer", None):
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding="utf-8", errors="replace")
except Exception:
pass
try:
if getattr(sys.stderr, "buffer", None):
sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding="utf-8", errors="replace")
if hasattr(sys.stdout, "reconfigure"):
sys.stdout.reconfigure(encoding="utf-8", errors="replace",
line_buffering=True, write_through=True)
elif getattr(sys.stdout, "buffer", None):
# 退路:重新包一层,启用行缓冲 + 直写
sys.stdout = io.TextIOWrapper(
sys.stdout.buffer, encoding="utf-8",
errors="replace", line_buffering=True
)
except Exception:
pass
try:
if hasattr(sys.stderr, "reconfigure"):
sys.stderr.reconfigure(encoding="utf-8", errors="replace",
line_buffering=True, write_through=True)
elif getattr(sys.stderr, "buffer", None):
sys.stderr = io.TextIOWrapper(
sys.stderr.buffer, encoding="utf-8",
errors="replace", line_buffering=True
)
except Exception:
pass
_force_utf8_everywhere()
# ===========================================================