From 2719f5c75b8d609c8f32896d2f6a21273ccb954b Mon Sep 17 00:00:00 2001 From: admin Date: Wed, 15 Jul 2026 09:00:13 +0000 Subject: [PATCH] =?UTF-8?q?schlib=5Fwrite:=20encode=20parameter=20records?= =?UTF-8?q?=20as=20UTF-8=20(fixes=20crash=20on=20=CE=A9/=C2=B5=20and=20oth?= =?UTF-8?q?er=20non-latin-1=20chars=20in=20template=20columns=20like=20ESR?= =?UTF-8?q?(m=CE=A9))?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/CHANGELOG.xlsx | Bin 5662 -> 5664 bytes scripts/schlib_write.py | 10 +++++----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/assets/CHANGELOG.xlsx b/assets/CHANGELOG.xlsx index 7aaf24400c64e11b1034d63fd504086cb90a2b01..153bde74dabcd4bd8f8b05b2b29bb5a07e8d3c8b 100644 GIT binary patch delta 1912 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 diff --git a/scripts/schlib_write.py b/scripts/schlib_write.py index 4730cd6..4204fe8 100644 --- a/scripts/schlib_write.py +++ b/scripts/schlib_write.py @@ -113,7 +113,7 @@ def _uid(name): def _param_record(idx, name, value): s=(f"|RECORD=41|IndexInSheet={idx}|OwnerPartId=1|Justification=4|FontID=2|IsHidden=T" f"|Text={value}|Name={name}|UniqueID={_uid(name)}") - payload=s.encode('latin-1')+b'\x00' + payload=s.encode('utf-8')+b'\x00' # utf-8: handles Ω, µ, °, ± in names/values return struct.pack('