diff --git a/library/UNICODE-TABLES b/library/UNICODE-TABLES
index cd429286..166adc52 100644
--- a/library/UNICODE-TABLES
+++ b/library/UNICODE-TABLES
@@ -1,15 +1,12 @@
-(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10 FORMAT UTF-8)
+(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10 :FORMAT :UTF-8)
 
-(FILECREATED "22-Feb-2026 10:44:33" {WMEDLEY}<library>UNICODE-TABLES.;20 44960  
+(FILECREATED "31-Mar-2026 09:01:05" {WMEDLEY}<library>UNICODE-TABLES.;22 44782  
 
       :EDIT-BY rmk
 
-      :CHANGES-TO (FNS ALL-UNICODE-MAPPINGS GET-MCCS-UNICODE-MAPPING INVERT-UNICODE-MAPPING 
-                       MAKE-UNICODE-TRANSLATION-TABLES MERGE-UNICODE-TRANSLATION-TABLES 
-                       READ-UNICODE-MAPPING-FILENAMES)
-                  (VARS UNICODE-TABLESCOMS)
+      :CHANGES-TO (VARS XCCS-CHARSETS)
 
-      :PREVIOUS-DATE "22-Feb-2026 09:15:20" {WMEDLEY}<library>UNICODE-TABLES.;16)
+      :PREVIOUS-DATE "22-Feb-2026 10:44:33" {WMEDLEY}<library>UNICODE-TABLES.;20)
 
 
 (PRETTYCOMPRINT UNICODE-TABLESCOMS)
@@ -78,8 +75,9 @@
         (RUNIC-GOTHIC "51")
         (MORE-CYRILLIC "52")
         (UNKNOWN1 "56")
+        (DECORATED-RULES "56")
         (UNKNOWN2 "57")
-        (JIS "60-166")
+        (VERTICAL-JAPANESE "57")
         (ARABIC "340")
         (HEBREW "341")
         (IPA "342")
@@ -101,9 +99,10 @@
         (ACCENTED-GREEK2 "364")
         (MORE-ARABIC "365")
         (GRAPHIC-VARIANTS "375")
+        (JAPANESE HIRAGANA KATAKANA JIS)
         (DEFAULT LATIN ACCENTED-LATIN1 EXTENDED-LATIN SYMBOLS1 SYMBOLS2 FORMS JAPANESE-SYMBOLS1 
                JAPANESE-SYMBOLS2)
-        (JAPANESE HIRAGANA KATAKANA JIS)))
+        (JIS "60-166")))
 (DEFINEQ
 
 (READ-UNICODE-MAPPING-FILENAMES
@@ -793,12 +792,12 @@
        UNICODE-EXPORTS)
 )
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (4107 12829 (READ-UNICODE-MAPPING-FILENAMES 4117 . 8586) (READ-UNICODE-MAPPING 8588 . 
-12827)) (12896 19704 (MAKE-UNICODE-TRANSLATION-TABLES 12906 . 15666) (GET-MCCS-UNICODE-MAPPING 15668
- . 16688) (INVERT-UNICODE-MAPPING 16690 . 18483) (XCCSTOMCCS-MAPPING 18485 . 19702)) (19705 26328 (
-ALL-UNICODE-MAPPINGS 19715 . 24991) (XCCSJAPANESECHARSETS 24993 . 26326)) (26373 37135 (
-WRITE-UNICODE-MAPPING 26383 . 30127) (WRITE-UNICODE-INCLUDED 30129 . 34441) (
-WRITE-UNICODE-MAPPING-HEADER 34443 . 35691) (WRITE-UNICODE-MAPPING-FILENAME 35693 . 37133)) (37136 
-37812 (XCCS-UTF8-AFTER-OPEN 37146 . 37810)) (40337 42426 (UTF8HEXSTRING 40347 . 42424)) (42453 44495 (
-SHOWCHARS 42463 . 44493)))))
+  (FILEMAP (NIL (3929 12651 (READ-UNICODE-MAPPING-FILENAMES 3939 . 8408) (READ-UNICODE-MAPPING 8410 . 
+12649)) (12718 19526 (MAKE-UNICODE-TRANSLATION-TABLES 12728 . 15488) (GET-MCCS-UNICODE-MAPPING 15490
+ . 16510) (INVERT-UNICODE-MAPPING 16512 . 18305) (XCCSTOMCCS-MAPPING 18307 . 19524)) (19527 26150 (
+ALL-UNICODE-MAPPINGS 19537 . 24813) (XCCSJAPANESECHARSETS 24815 . 26148)) (26195 36957 (
+WRITE-UNICODE-MAPPING 26205 . 29949) (WRITE-UNICODE-INCLUDED 29951 . 34263) (
+WRITE-UNICODE-MAPPING-HEADER 34265 . 35513) (WRITE-UNICODE-MAPPING-FILENAME 35515 . 36955)) (36958 
+37634 (XCCS-UTF8-AFTER-OPEN 36968 . 37632)) (40159 42248 (UTF8HEXSTRING 40169 . 42246)) (42275 44317 (
+SHOWCHARS 42285 . 44315)))))
 STOP
diff --git a/library/UNICODE-TABLES.LCOM b/library/UNICODE-TABLES.LCOM
index 88ca0dcb..6819f919 100644
Binary files a/library/UNICODE-TABLES.LCOM and b/library/UNICODE-TABLES.LCOM differ
diff --git a/sources/UNICODE-FORMATS b/sources/UNICODE-FORMATS
index 1ab0cd81..a8b3a60c 100644
--- a/sources/UNICODE-FORMATS
+++ b/sources/UNICODE-FORMATS
@@ -1,13 +1,10 @@
-(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10 FORMAT UTF-8)
+(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10 :FORMAT :UTF-8)
 
-(FILECREATED "23-Feb-2026 12:15:24" {WMEDLEY}<sources>UNICODE-FORMATS.;2 216288 
+(FILECREATED "31-Mar-2026 09:03:25" {WMEDLEY}<sources>UNICODE-FORMATS.;4 218013 
 
       :EDIT-BY rmk
 
-      :CHANGES-TO (VARS UNICODE-FORMATSCOMS)
-                  (FNS MAKE-UNICODE-FORMATS)
-
-      :PREVIOUS-DATE "23-Feb-2026 08:52:29" {WMEDLEY}<sources>UNICODE-UTF8.;26)
+      :PREVIOUS-DATE " 9-Mar-2026 13:11:16" {WMEDLEY}<sources>UNICODE-FORMATS.;3)
 
 
 (PRETTYCOMPRINT UNICODE-FORMATSCOMS)
@@ -47,6 +44,9 @@
                                                       (LAST-PRIVATE-MCCSCODE (CHARCODE "230,377"]
               (FNS UNICODE-INIT)
               (P (UNICODE-INIT)))
+        (COMS (FNS SYSTEM-EXTERNALFORMAT MTOSYSSTRING SYSTOMSTRING)
+              (EXPORT (GLOBALVARS *SYSTEM-EXTERNALFORMAT*))
+              (INITVARS (*SYSTEM-EXTERNALFORMAT* :UTF-8)))
         (DECLARE%: EVAL@LOAD DONTCOPY (FILES UNICODE-TABLES))
         (E (PRINTOUT NIL "(MERGE-UNICODE-TRANSLATION-TABLES NIL (QUOTE " (GET-MCCS-UNICODE-MAPPING
                                                                           'ALL)
@@ -1243,6 +1243,41 @@
 )
 
 (UNICODE-INIT)
+(DEFINEQ
+
+(SYSTEM-EXTERNALFORMAT
+  [LAMBDA NIL                                                (* ; "Edited  6-Feb-2026 11:29 by rmk")
+                                                             (* ; "Edited 31-Jan-2026 18:51 by rmk")
+                                                             (* ; "Edited 10-Oct-2022 11:55 by lmm")
+                                                             (* ; "Edited  7-Jul-2022 10:41 by rmk")
+
+    (* ;; "Returns the name, sets the global.  For now, UTF-8 or through, could be something else.")
+
+    (fetch (EXTERNALFORMAT NAME) of (SETQ *SYSTEM-EXTERNALFORMAT*
+                                     (FIND-FORMAT (FOR X IN '("LC_CTYPE" "LC_ALL" "LANG")
+                                                     WHEN (STRPOS ".UTF-8" (UNIX-GETENV X))
+                                                     DO (RETURN :UTF-8) FINALLY (RETURN :THROUGH])
+
+(MTOSYSSTRING
+  [LAMBDA (MSTRING)                                          (* ; "Edited  6-Feb-2026 00:20 by rmk")
+    (MCCSTOFORMATBYTES *SYSTEM-EXTERNALFORMAT* (MKSTRING MSTRING])
+
+(SYSTOMSTRING
+  [LAMBDA (SYSTRING)                                         (* ; "Edited  5-Feb-2026 23:36 by rmk")
+
+    (* ;; "SYSSTRING is presumably shared with Unix, guarantee a copy on the way out")
+
+    (CONCAT (FORMATBYTESTOMCCS *SYSTEM-EXTERNALFORMAT* SYSTRING])
+)
+(* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: DOEVAL@COMPILE DONTCOPY
+
+(GLOBALVARS *SYSTEM-EXTERNALFORMAT*)
+)
+
+(* "END EXPORTED DEFINITIONS")
+
+
+(RPAQ? *SYSTEM-EXTERNALFORMAT* :UTF-8)
 (DECLARE%: EVAL@LOAD DONTCOPY 
 
 (FILESLOAD UNICODE-TABLES)
@@ -2721,19 +2756,20 @@
  (64994 8322) (64995 8323) (64996 8324) (64997 8325) (64998 8326) (64999 8327) (65000 8328) (65001 
 8329) (65002 8331) (65003 8330) (65004 8332) (65008 (48 824)))))
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (3333 19425 (UTF8.OUTCHARFN 3343 . 6359) (UTF8.SLUG.OUTCHARFN 6361 . 7025) (
-UTF8.INCCODEFN 7027 . 13306) (UTF8.PEEKCCODEFN 13308 . 18441) (\UTF8.BACKCCODEFN 18443 . 19423)) (
-19426 24341 (UTF16BE.OUTCHARFN 19436 . 20455) (UTF16BE.INCCODEFN 20457 . 21799) (UTF16BE.PEEKCCODEFN 
-21801 . 23145) (\UTF16BE.BACKCCODEFN 23147 . 24339)) (24342 29073 (UTF16LE.OUTCHARFN 24352 . 25468) (
-UTF16LE.INCCODEFN 25470 . 26599) (UTF16LE.PEEKCCODEFN 26601 . 27877) (\UTF16LE.BACKCCODEFN 27879 . 
-29071)) (29074 32121 (READBOM 29084 . 31153) (WRITEBOM 31155 . 32119)) (32122 36153 (
-MAKE-UNICODE-FORMATS 32132 . 36151)) (36221 40715 (UTF8.BINCODE 36231 . 38919) (\UTF8.FETCHCODE 38921
- . 40713)) (40716 46339 (UTF8.VALIDATE 40726 . 43323) (NUTF8-BYTE1-BYTES 43325 . 44062) (
-NUTF8-CODE-BYTES 44064 . 45121) (NUTF8-STRING-BYTES 45123 . 46015) (N-MCHARS 46017 . 46337)) (46403 
-47677 (MTOUCODE 46413 . 46582) (UTOMCODE 46584 . 46781) (MTOUCODE? 46783 . 47162) (UTOMCODE? 47164 . 
-47675)) (47678 54250 (MTOUSTRING 47688 . 48271) (UTOMSTRING 48273 . 48856) (MTOUTF8STRING 48858 . 
-53137) (UTF8TOMSTRING 53139 . 54248)) (54308 60016 (XTOUCODE 54318 . 54836) (UTOXCODE 54838 . 55346) (
-XTOUCODE? 55348 . 56409) (UTOXCODE? 56411 . 57494) (XTOUSTRING 57496 . 58191) (UTOXSTRING 58193 . 
-58936) (XTOUTF8STRING 58938 . 60014)) (60017 65196 (MERGE-UNICODE-TRANSLATION-TABLES 60027 . 62789) (
-UNICODE.UNMAPPED 62791 . 65194)) (68935 69188 (UNICODE-INIT 68945 . 69186)))))
+  (FILEMAP (NIL (3431 19523 (UTF8.OUTCHARFN 3441 . 6457) (UTF8.SLUG.OUTCHARFN 6459 . 7123) (
+UTF8.INCCODEFN 7125 . 13404) (UTF8.PEEKCCODEFN 13406 . 18539) (\UTF8.BACKCCODEFN 18541 . 19521)) (
+19524 24439 (UTF16BE.OUTCHARFN 19534 . 20553) (UTF16BE.INCCODEFN 20555 . 21897) (UTF16BE.PEEKCCODEFN 
+21899 . 23243) (\UTF16BE.BACKCCODEFN 23245 . 24437)) (24440 29171 (UTF16LE.OUTCHARFN 24450 . 25566) (
+UTF16LE.INCCODEFN 25568 . 26697) (UTF16LE.PEEKCCODEFN 26699 . 27975) (\UTF16LE.BACKCCODEFN 27977 . 
+29169)) (29172 32219 (READBOM 29182 . 31251) (WRITEBOM 31253 . 32217)) (32220 36251 (
+MAKE-UNICODE-FORMATS 32230 . 36249)) (36319 40813 (UTF8.BINCODE 36329 . 39017) (\UTF8.FETCHCODE 39019
+ . 40811)) (40814 46437 (UTF8.VALIDATE 40824 . 43421) (NUTF8-BYTE1-BYTES 43423 . 44160) (
+NUTF8-CODE-BYTES 44162 . 45219) (NUTF8-STRING-BYTES 45221 . 46113) (N-MCHARS 46115 . 46435)) (46501 
+47775 (MTOUCODE 46511 . 46680) (UTOMCODE 46682 . 46879) (MTOUCODE? 46881 . 47260) (UTOMCODE? 47262 . 
+47773)) (47776 54348 (MTOUSTRING 47786 . 48369) (UTOMSTRING 48371 . 48954) (MTOUTF8STRING 48956 . 
+53235) (UTF8TOMSTRING 53237 . 54346)) (54406 60114 (XTOUCODE 54416 . 54934) (UTOXCODE 54936 . 55444) (
+XTOUCODE? 55446 . 56507) (UTOXCODE? 56509 . 57592) (XTOUSTRING 57594 . 58289) (UTOXSTRING 58291 . 
+59034) (XTOUTF8STRING 59036 . 60112)) (60115 65294 (MERGE-UNICODE-TRANSLATION-TABLES 60125 . 62887) (
+UNICODE.UNMAPPED 62889 . 65292)) (69033 69286 (UNICODE-INIT 69043 . 69284)) (69307 70745 (
+SYSTEM-EXTERNALFORMAT 69317 . 70261) (MTOSYSSTRING 70263 . 70456) (SYSTOMSTRING 70458 . 70743)))))
 STOP
diff --git a/sources/UNICODE-FORMATS.LCOM b/sources/UNICODE-FORMATS.LCOM
index 5ee08dff..d21316db 100644
Binary files a/sources/UNICODE-FORMATS.LCOM and b/sources/UNICODE-FORMATS.LCOM differ
