From adfbac7d90d07f347f8c1c3fb92bfd9e68e847af Mon Sep 17 00:00:00 2001 From: Passthem Date: Sat, 1 Nov 2025 13:48:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=AD=A3=E4=B9=89=20utf-8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- konabot/common/data_man.py | 4 ++-- konabot/common/longtask.py | 4 ++-- konabot/plugins/idiomgame/__init__.py | 6 +++--- konabot/plugins/kona_ph/core/storage.py | 4 ++-- konabot/plugins/poll/__init__.py | 4 ++-- konabot/plugins/simple_notify/__init__.py | 4 ++-- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/konabot/common/data_man.py b/konabot/common/data_man.py index 71c7fe0..da8381c 100644 --- a/konabot/common/data_man.py +++ b/konabot/common/data_man.py @@ -19,12 +19,12 @@ class DataManager(Generic[T]): if not self.fp.exists(): return self.cls() try: - return self.cls.model_validate_json(self.fp.read_text()) + return self.cls.model_validate_json(self.fp.read_text("utf-8")) except ValidationError: return self.cls() def save(self, data: T): - self.fp.write_text(data.model_dump_json()) + self.fp.write_text(data.model_dump_json(), "utf-8") @asynccontextmanager async def get_data(self): diff --git a/konabot/common/longtask.py b/konabot/common/longtask.py index 72e42b7..e7c1eae 100644 --- a/konabot/common/longtask.py +++ b/konabot/common/longtask.py @@ -240,7 +240,7 @@ def handle_long_task(callback_id: str): def _load_longtask_data() -> LongTaskModuleData: try: - txt = LONGTASK_DATA_DIR.read_text() + txt = LONGTASK_DATA_DIR.read_text("utf-8") return LongTaskModuleData.model_validate_json(txt) except (FileNotFoundError, ValidationError) as e: logger.info(f"取得 LongTask 数据时出现问题:{e}") @@ -251,7 +251,7 @@ def _load_longtask_data() -> LongTaskModuleData: def _save_longtask_data(data: LongTaskModuleData): - LONGTASK_DATA_DIR.write_text(data.model_dump_json()) + LONGTASK_DATA_DIR.write_text(data.model_dump_json(), "utf-8") @asynccontextmanager diff --git a/konabot/plugins/idiomgame/__init__.py b/konabot/plugins/idiomgame/__init__.py index 659df5d..cf21349 100644 --- a/konabot/plugins/idiomgame/__init__.py +++ b/konabot/plugins/idiomgame/__init__.py @@ -30,7 +30,7 @@ def load_banned_ids() -> list[str]: if not DATA_FILE_PATH.exists(): return [] try: - return json.loads(DATA_FILE_PATH.read_text()) + return json.loads(DATA_FILE_PATH.read_text("utf-8")) except Exception as e: logger.warning(f"在解析成语接龙封禁文件时遇到问题:{e}") return [] @@ -45,14 +45,14 @@ def add_banned_id(group_id: str): banned_ids = load_banned_ids() if group_id not in banned_ids: banned_ids.append(group_id) - DATA_FILE_PATH.write_text(json.dumps(banned_ids, ensure_ascii=False, indent=4)) + DATA_FILE_PATH.write_text(json.dumps(banned_ids, ensure_ascii=False, indent=4), "utf-8") def remove_banned_id(group_id: str): banned_ids = load_banned_ids() if group_id in banned_ids: banned_ids.remove(group_id) - DATA_FILE_PATH.write_text(json.dumps(banned_ids, ensure_ascii=False, indent=4)) + DATA_FILE_PATH.write_text(json.dumps(banned_ids, ensure_ascii=False, indent=4), "utf-8") class TryStartState(Enum): diff --git a/konabot/plugins/kona_ph/core/storage.py b/konabot/plugins/kona_ph/core/storage.py index dd5a1fe..1b7c38c 100644 --- a/konabot/plugins/kona_ph/core/storage.py +++ b/konabot/plugins/kona_ph/core/storage.py @@ -306,14 +306,14 @@ lock = asyncio.Lock() def read_data(): try: - data_raw = KONAPH_DATA_JSON.read_text() + data_raw = KONAPH_DATA_JSON.read_text("utf-8") return PuzzleManager.model_validate_json(data_raw) except (FileNotFoundError, ValidationError): return PuzzleManager() def write_data(data: PuzzleManager): - KONAPH_DATA_JSON.write_text(data.model_dump_json()) + KONAPH_DATA_JSON.write_text(data.model_dump_json(), "utf-8") @asynccontextmanager diff --git a/konabot/plugins/poll/__init__.py b/konabot/plugins/poll/__init__.py index 2cb28ef..2ba1454 100644 --- a/konabot/plugins/poll/__init__.py +++ b/konabot/plugins/poll/__init__.py @@ -15,7 +15,7 @@ if not POLL_DATA_FILE.exists(): POLL_DATA_FILE.write_bytes(POLL_TEMPLATE_FILE.read_bytes()) -poll_list = json.loads(POLL_DATA_FILE.read_text())['poll'] +poll_list = json.loads(POLL_DATA_FILE.read_text("utf-8"))['poll'] async def createpoll(title,qqid,options): polllength = len(poll_list) @@ -53,7 +53,7 @@ def writeback(): # json.dump({'poll':poll_list},file,ensure_ascii=False,sort_keys=True) POLL_DATA_FILE.write_text(json.dumps({ 'poll': poll_list, - }, ensure_ascii=False, sort_keys=True)) + }, ensure_ascii=False, sort_keys=True), "utf-8") async def pollvote(polnum,optionnum,qqnum): optiond = poll_list[polnum]["polldata"] diff --git a/konabot/plugins/simple_notify/__init__.py b/konabot/plugins/simple_notify/__init__.py index 431ee7e..55fec05 100644 --- a/konabot/plugins/simple_notify/__init__.py +++ b/konabot/plugins/simple_notify/__init__.py @@ -59,14 +59,14 @@ def load_notify_config() -> NotifyConfigFile: if not DATA_FILE_PATH.exists(): return NotifyConfigFile() try: - return NotifyConfigFile.model_validate_json(DATA_FILE_PATH.read_text()) + return NotifyConfigFile.model_validate_json(DATA_FILE_PATH.read_text("utf-8")) except Exception as e: logger.warning(f"在解析 Notify 时遇到问题:{e}") return NotifyConfigFile() def save_notify_config(config: NotifyConfigFile): - DATA_FILE_PATH.write_text(config.model_dump_json(indent=4)) + DATA_FILE_PATH.write_text(config.model_dump_json(indent=4), "utf-8") @evt.handle()