jtc-utils
Version:
Utilities for Japanese Traditional Companies
80 lines (79 loc) • 2.24 kB
JavaScript
import { PackedMap } from "../util/PackedMap.mjs";
import { cp930 } from "./cp930.mjs";
export const IBMKanjiEncodeMap = new PackedMap((m) => {
const decoder = cp930.createDecoder({ fatal: false });
m.set(0xa6, 0x426a);
m.set(0xa7, 0x446a);
m.set(0xa8, 0x4460);
m.set(0xb0, 0x44ed);
m.set(0xb1, 0x444b);
m.set(0xb4, 0x4450);
m.set(0xb6, 0x4379);
m.set(0xd7, 0x447a);
m.set(0xf7, 0x447b);
m.set(0x2014, 0x444a);
m.set(0x2016, 0x447c);
m.set(0x2212, 0x4260);
m.set(0x301c, 0x43a1);
m.set(0x4fe0, 0x52ec);
m.set(0x525d, 0x5481);
m.set(0x555e, 0x54d4);
m.set(0x5699, 0x547d);
m.set(0x56ca, 0x5190);
m.set(0x5861, 0x4f5e);
m.set(0x5c5b, 0x5443);
m.set(0x5c62, 0x55c0);
m.set(0x6414, 0x54a3);
m.set(0x6451, 0x54cd);
m.set(0x6522, 0x5b72);
m.set(0x6805, 0x51f1);
m.set(0x688e, 0x5bfe);
m.set(0x6be1, 0x54d4);
m.set(0x6d00, 0x5550);
m.set(0x6f51, 0x54fa);
m.set(0x7006, 0x5550);
m.set(0x70ff, 0x52ec);
m.set(0x7130, 0x53ee);
m.set(0x7626, 0x54a4);
m.set(0x79b1, 0x5553);
m.set(0x7c1e, 0x54ca);
m.set(0x7e48, 0x60f1);
m.set(0x7e61, 0x52da);
m.set(0x7e6b, 0x5373);
m.set(0x8141, 0x61b0);
m.set(0x8346, 0x53b3);
m.set(0x840a, 0x52c9);
m.set(0x841d, 0x53e8);
m.set(0x841f, 0x52a1);
m.set(0x8523, 0x53f8);
m.set(0x87ec, 0x53e8);
m.set(0x881f, 0x52a1);
m.set(0x8ec0, 0x5353);
m.set(0x8f91, 0x446e);
m.set(0x91ac, 0x507f);
m.set(0x91b1, 0x51fa);
m.set(0x92ca, 0x547d);
m.set(0x9830, 0x4eb3);
m.set(0x9839, 0x66c8);
m.set(0x985a, 0x55c1);
m.set(0x9a52, 0x53da);
m.set(0x9b7e, 0x53da);
m.set(0x9dd7, 0x5464);
m.set(0x9e7c, 0x4c7d);
m.set(0x9eb4, 0x5261);
m.set(0x9eb5, 0x555f);
m.set(0xf86f, 0x446e);
const buf = new Uint8Array(4);
buf[0] = 0x0e;
buf[3] = 0x0f;
for (let hb = 0x40; hb <= 0xfe; hb++) {
buf[1] = hb;
for (let lb = 0x40; lb <= 0xfe; lb++) {
buf[2] = lb;
const decoded = decoder.decode(buf);
if (decoded && decoded !== "\uFFFD") {
m.set(decoded.charCodeAt(0), (hb << 8) | lb);
}
}
}
});