VIT — 012

Hebrew Encoding Triage

Vitruvius · 3 קידודי עברית ב-DWG ישראליים · The core IP · סשנים 0025-0033

A
B
C
D
Input · DWG / DXF
קישור CAD מהיועץ · 3 קידודים אפשריים
קובץ מקור מהיועץ
Revit לא מרנדר SHX · עברית נראית כג'יבריש
EN-TYPED · CP1255
עברית שהוקלדה במקלדת אנגלית
Windows באנגלית · ASCII Latin אחסון · פונט SHX ישן (txt/MIRYL/GALIL)
c,herv bheuz nzdi
UNICODE · UTF-8 VISUAL
UTF-8 בסדר ויזואלי
accore מוציא UTF-8 (לא CP1255!) · אותיות הפוכות בסדר logical→visual
רובחי זוקינל
CP862 · DOS HEBREW
עברית DOS ב-bytes 0x80-0x9A
accore עושה mojibake דרך Windows-1252 · נראה כcontrol-chars או cp1252 specials
%%128%%133 ƒ † ‡
Detect · Analyze
סיווג read-only · HebrewOrderDetector
DxfTextReverser · Analyze
שערים לפני שיפוט · denylist + protection patterns
EN-TYPED
denylist + font name match
סינון %%c/%%C/%%d/@/= · TextStyle משתמש ב-SHX legacy → flag EN-typed
UTF-8 VISUAL
final-letter heuristic
HebrewOrderDetector · אות סופית (ך ם ן ף ץ) בתחילת מילה = visual · ≥2 אותיות עוקבות נדרשות
CP862
mojibake fingerprint
UTF-8 קיים + רצף ≥2 controls C1 / cp1252-specials · %%nnn = byte literal
Protection gates
לעולם לא לגעת ב: דיאמטר %%c/%%C, מעלה %%d, אנגלית רגילה, ספרים בלבד · אסור double-reverse על EN-typed
Fix · Apply
פעולה ספציפית לכל קידוד
DxfTextReverser · Apply
3 מסלולים מקבילים · אחד per-string לפי תוצאת Detect
EN-TYPED → David
fontmap + char-reverse
shxfontmap.txt → Vitruvius Hebrew Visual TTF (cmap ASCII→Hebrew IL layout) · ואז char-reverse כי Revit מצייר LTR
UTF-8 → reverse
visual→logical reverse
היפוך אותיות בלבד · idempotent (HebrewOrderDetector מזהה ולא ירוץ פעמיים)
CP862 → recover
RecoverCp862 per-char
C1 controls נושאים בייט בקוד · cp1252 specials → encode back · %%nnn = literal byte · ואז CP862 decode
cache.Record · state.json
FixedAt > mtime · מונע re-fix בלולאת DocumentChanged (M5)
Render · Revit
פלט נראה למשתמש · עברית קריאה
Revit טוען DWG/DXF מתוקן
CADLinkType.Reload (Transaction wrap · M5-patch) · RefreshActiveView · ~5 שניות end-to-end
Hebrew Visual TTF מציג
cmap ASCII→Hebrew · LTR-render + RTL-read = match
חיבור לניקוז
סדר logical נכון
Unicode רגיל · פונט המקור של Revit
לינוקס יחבור
CP862 → Hebrew
bytes משוחזרים → אותיות עבריות Unicode רגילות
מקרא:
אומת fixture A_Mivne roi.rvt
אינסטלציה 648→665 · TOPO 0→353 הפוך נכון · ג'יבריש 66→3 · אפס רגרסיה
🎯 FIX FIDELITY — אסור לקלקל מה שלא שבור
Vitruvius חייב להבחין בין 3 קידודי עברית שמופיעים באותו DWG ולא לערבב ביניהם — וגם לא לגעת באנגלית, ספרות, מידות וסמלי AutoCAD. Protection gates ב-Analyze: %%c/%%C (דיאמטר), %%d (מעלות), %%p (±), %%% (literal %), @ (block ref), = (equals). Font cmap בנוי לעקוב אחרי מוסכמת SHX, לא המקלדת — .→נקודה (לא ץ), q/, w', קוטר %%C ממופה ל-U+2205 (לא U+00D8). EN-typed אינו idempotent — הרצה כפולה תהפוך נכון לג'יבריש. Unicode/CP862 כן (HebrewOrderDetector בודק סדר לפני).
Input (קובץ מהיועץ)
Detect (read-only)
Fix (mutation)
Render (תוצר משתמש)
EN-typed CP1255
Guard / Validation
Project Vitruvius
Drawing Hebrew Encoding Triage
Subject 3-Encoding Fix Pipeline
Sessions 0025-0033
Ref. No. VIT — 012
Vitruvius Design Language · 2026