From 9fc7f169814a5c409627de2db91df556e8147029 Mon Sep 17 00:00:00 2001 From: Yasutake Yohei <61961825+yasutakeyohei@users.noreply.github.com> Date: Thu, 29 Oct 2026 16:29:36 +0900 Subject: park-editor: 公園名の文字化けも自動修復 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 公園名の値が文字化けした場合も、ディスク側の名前と一致すれば元に戻し、重複レコードを作らないようにした。 --- scripts/park-editor.mjs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/scripts/park-editor.mjs b/scripts/park-editor.mjs index 2ccd96d..feeb059 100644 --- a/scripts/park-editor.mjs +++ b/scripts/park-editor.mjs @@ -159,6 +159,19 @@ function mergeInto(target, source) { // ブラウザが古いデータを持っていても、後から足した項目やレコードを消さないようにする。 // 画面になくて編集できないキーは、ディスク側の値を残す。 function mergeMissing(postedList, currentList, canonicalKeys) { + // 公園名そのものが文字化けした場合は、ディスク側の名前に戻す + const currentNames = currentList.map(recordKey).filter(Boolean); + for (const rec of postedList) { + const src = rec.properties || rec; + for (const key of NAME_KEYS) { + const value = src[key]; + if (typeof value !== "string" || !value.includes(FFFD)) continue; + const hits = currentNames.filter((name) => repairValue(value, name) === name); + if (hits.length === 1) src[key] = hits[0]; + break; + } + } + for (const rec of postedList) normalizeRecordKeys(rec, canonicalKeys); // 同じレコードが重複していたら1つにまとめる -- cgit v1.3.1