Fix: Ensure UTF-8 encoding for all file operations

This commit is contained in:
chtangwin
2026-02-10 17:31:45 +08:00
parent 8de36d398f
commit c7b5dd9350
5 changed files with 13 additions and 11 deletions

View File

@@ -121,7 +121,7 @@ class SessionManager:
created_at = None
last_consolidated = 0
with open(path) as f:
with open(path, encoding="utf-8") as f:
for line in f:
line = line.strip()
if not line:
@@ -151,7 +151,7 @@ class SessionManager:
"""Save a session to disk."""
path = self._get_session_path(session.key)
with open(path, "w") as f:
with open(path, "w", encoding="utf-8") as f:
metadata_line = {
"_type": "metadata",
"created_at": session.created_at.isoformat(),
@@ -159,9 +159,10 @@ class SessionManager:
"metadata": session.metadata,
"last_consolidated": session.last_consolidated
}
f.write(json.dumps(metadata_line) + "\n")
f.write(json.dumps(metadata_line, ensure_ascii=False) + "\n")
for msg in session.messages:
f.write(json.dumps(msg) + "\n")
f.write(json.dumps(msg, ensure_ascii=False) + "\n")
self._cache[session.key] = session
@@ -181,7 +182,7 @@ class SessionManager:
for path in self.sessions_dir.glob("*.jsonl"):
try:
# Read just the metadata line
with open(path) as f:
with open(path, encoding="utf-8") as f:
first_line = f.readline().strip()
if first_line:
data = json.loads(first_line)