1
yomichan-import/daijirin.go
Randy Palamar 6224b4c21f finish mapping most of daijirin
Now you can search for totally useful every day words like 瘟㾮日
and 多羅吒干𤚥 :^).

The characters that remain either don't exist in unicode or are very
difficult to find. Also a couple terms seem unsearchable in qolibri so
I couldn't check what the characters are supposed to be.

Any questionable choice was marked with FIXME. This will make it easy in
the future to replace some characters with their images if its something
that we want to support in the future.

* The FIXMEs with the missing font symbol should all be the correct
  character (not commonly covered by fonts)

* The くの字点 choices are to try and imitate the daijirin
  experience(TM). Probably the worst use of image fonts I've seen. Those
  characters should never appear in horizontal text. They should have
  just been replaced with the text that was supposed to be repeated.

* The 漢文訓読 characters in '{}' are technically the unicode specified
  characters for those glyphs however they just look like their full
  size variants. I surrounded them with '{}' so the examples that use
  them are still readable.

* The other FIXMEs should be self explanatory. Search the term in qolibri
  and look at what they used to see why they are questionable.
2021-06-17 07:56:14 -06:00

1766 lines
31 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* Copyright (c) 2016-2021 Alex Yatskov <alex@foosoft.net>
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
package yomichan
import (
"regexp"
"strings"
zig "github.com/FooSoft/zero-epwing-go"
)
type daijirinExtractor struct {
partsExp *regexp.Regexp
readGroupExp *regexp.Regexp
expVarExp *regexp.Regexp
metaExp *regexp.Regexp
v5Exp *regexp.Regexp
v1Exp *regexp.Regexp
}
func makeDaijirinExtractor() epwingExtractor {
return &daijirinExtractor{
partsExp: regexp.MustCompile(`([^(【〖]+)(?:【(.*)】)?(?:〖(.*)〗)?(?:(.*))?`),
readGroupExp: regexp.MustCompile(`[-・]+`),
expVarExp: regexp.MustCompile(`\(([^\)]*)\)`),
metaExp: regexp.MustCompile(`([^]*)`),
v5Exp: regexp.MustCompile(`(動.[四五]([^]+)?)|(動..二)`),
v1Exp: regexp.MustCompile(`(動..一)`),
}
}
func (e *daijirinExtractor) extractTerms(entry zig.BookEntry, sequence int) []dbTerm {
matches := e.partsExp.FindStringSubmatch(entry.Heading)
if matches == nil {
return nil
}
var expressions, readings []string
if expression := matches[2]; len(expression) > 0 {
expression = e.metaExp.ReplaceAllLiteralString(expression, "")
for _, split := range strings.Split(expression, "・") {
splitInc := e.expVarExp.ReplaceAllString(split, "$1")
expressions = append(expressions, splitInc)
if split != splitInc {
splitExc := e.expVarExp.ReplaceAllLiteralString(split, "")
expressions = append(expressions, splitExc)
}
}
}
if reading := matches[1]; len(reading) > 0 {
reading = e.readGroupExp.ReplaceAllLiteralString(reading, "")
readings = append(readings, reading)
}
var tags []string
for _, split := range strings.Split(entry.Text, "\n") {
if matches := e.metaExp.FindStringSubmatch(split); matches != nil {
for _, tag := range strings.Split(matches[1], "・") {
tags = append(tags, tag)
}
}
}
var terms []dbTerm
if len(expressions) == 0 {
for _, reading := range readings {
term := dbTerm{
Expression: reading,
Glossary: []string{entry.Text},
Sequence: sequence,
}
e.exportRules(&term, tags)
terms = append(terms, term)
}
} else {
for _, expression := range expressions {
for _, reading := range readings {
term := dbTerm{
Expression: expression,
Reading: reading,
Glossary: []string{entry.Text},
Sequence: sequence,
}
e.exportRules(&term, tags)
terms = append(terms, term)
}
}
}
return terms
}
func (*daijirinExtractor) extractKanji(entry zig.BookEntry) []dbKanji {
return nil
}
func (e *daijirinExtractor) exportRules(term *dbTerm, tags []string) {
for _, tag := range tags {
if tag == "形" {
term.addRules("adj-i")
} else if tag == "動サ変" && (strings.HasSuffix(term.Expression, "する") || strings.HasSuffix(term.Expression, "為る")) {
term.addRules("vs")
} else if term.Expression == "来る" {
term.addRules("vk")
} else if e.v5Exp.MatchString(tag) {
term.addRules("v5")
} else if e.v1Exp.MatchString(tag) {
term.addRules("v1")
}
}
}
func (*daijirinExtractor) getRevision() string {
return "daijirin2"
}
func (*daijirinExtractor) getFontNarrow() map[int]string {
return map[int]string{
49441: "á",
49442: "à",
49443: "â",
49444: "ä",
49445: "ã",
49446: "ā",
49447: "é",
49448: "è",
49449: "ê",
49450: "ë",
49451: "ē",
49452: "í",
49453: "î",
49454: "ï",
49455: "ñ",
49456: "ó",
49457: "ò",
49458: "ô",
49459: "ö",
49460: "ř",
49461: "ú",
49462: "ü",
49463: "~",
49464: "ç",
49465: "ˇ",
49466: "ɡ",
49467: "ŋ",
49468: "ʒ",
49469: "ʃ",
49470: "ɔ",
49471: "ð",
49472: "Á",
49473: "Í",
49474: "Ú",
49475: "É",
49476: "Ó",
49477: "À",
49478: "È",
49479: "Ò",
49480: "ì",
49481: "ù",
49482: "ý",
49483: "ỳ",
49484: "ɑ",
49485: "ə",
49486: "ə",
49487: "ɛ",
49488: "θ",
49489: "ʌ",
49490: "ɒ",
49491: "ə́",
49492: "ɔ́",
49493: "ɛ́",
49494: "ʌ́",
49495: "ɑ̀",
49496: "ə̀",
49497: "ɔ̀",
49498: "ɛ̀",
49499: "ʌ̀",
49500: "æ",
49501: "ǽ",
49502: "æ̀",
49503: "Æ",
49504: "ɑ",
49505: "å",
49506: "˘",
49507: "ă",
49508: "ŏ",
49509: "ĭ",
49510: "V́",
49511: "T́",
49512: "ɠ",
49513: "ɔ̃",
49515: "ɚ",
49516: "«",
49517: "»",
49519: "ŋ",
49520: "m̥",
49521: "ḿ̥",
49522: "Ɂ",
49523: "◌́◌̃", /* FIXME: should be acute ontop of tilde */
49524: "ã",
49525: "æ",
49526: "ɔ",
49527: "ć",
49528: "ã́",
49529: "ɛ̃́",
49531: "û",
49532: "Ý",
49533: "ɔ",
49534: "Ḿ",
49697: "ɛ̃",
49698: "⁺",
49699: "ˣ",
49700: "ō",
49701: "ğ",
49702: "𝐴",
49703: "𝐵",
49704: "𝐷",
49705: "Ḍ",
49706: "𝐸",
49707: "𝐹",
49708: "𝐺",
49709: "𝐻",
49710: "Ḥ",
49711: "𝐿",
49712: "𝑀",
49713: "𝑁",
49714: "𝑃",
49715: "𝑄",
49716: "𝑅",
49717: "Ṛ",
49718: "𝑆",
49719: "Ṣ",
49720: "𝑇",
49721: "𝑉",
49722: "Ẓ",
49723: "𝑎",
49724: "ą",
49725: "𝑏",
49726: "𝑐",
49727: "𝑑",
49728: "ḍ",
49729: "𝑒",
49730: "ę",
49731: "𝑓",
49732: "𝑔",
49733: "𝘩",
49734: "ḥ",
49735: "𝒾",
49736: "ị",
49737: "𝑘",
49738: "𝑙",
49739: "𝑚",
49740: "ṃ",
49741: "𝑛",
49742: "ṇ",
49743: "𝑜",
49744: "𝑝",
49745: "𝑞",
49746: "𝑟",
49747: "ṛ",
49748: "𝑠",
49749: "ş",
49750: "ṣ",
49751: "𝑡",
49752: "ṭ",
49753: "𝑣",
49754: "𝑥",
49755: "𝑦",
49756: "𝑧",
49757: "ẓ",
49758: "İ",
49759: "ṁ",
49760: "ṅ",
49761: "ż",
49762: "Ś",
49763: "ć",
49764: "ń",
49765: "ś",
49766: "ý",
49767: "ź",
49768: "ì",
49769: "Ä",
49770: "Ö",
49771: "Ü",
49772: "ÿ",
49773: "Â",
49774: "ộ",
49775: "û",
49776: "Ā",
49777: "Ē",
49778: "Ī",
49779: "Ō",
49780: "Ū",
49781: "ī",
49782: "n̄",
49783: "p̄",
49784: "ū",
49785: "ȳ",
49786: "Ł",
49787: "ł",
49788: "ø",
49789: "ĩ",
49790: "õ",
49954: "°R",
49955: "º",
49956: "½",
49957: "⅓",
49958: "¹",
49959: "²",
49960: "¾",
49961: "³",
49962: "⁴",
49963: "⁵",
49964: "⁶",
49965: "⁷",
49966: "⁸",
49967: "⁹",
49968: "ᴹ",
49969: "𝑎/𝑏",
49970: "ᵇ",
49971: "(𝑎→𝑏)", /* FIXME: 定積分 should be 'b' above 'a' for integral */
49972: "ɟ",
49973: "ⁱ",
49974: "ᵐ",
49975: "ⁿ",
49976: "ʳ",
49977: "ᵗ",
49978: "ˣ",
49979: "(𝑎→𝑥)", /* FIXME: 不定積分 should be 'x' above 'a' for integral */
49980: "ʸ",
49981: "⁺",
49982: "⁻",
49983: "±",
49984: "ᶿ",
49985: "₀",
49986: "₁",
49987: "₂",
49988: "₃",
49989: "₄",
49990: "₅",
49991: "₆",
49992: "₇",
49993: "₈",
49994: "₉",
49995: "ᴀ",
49996: "ₐ",
49997: "ᵦ", /* FIXME: subscript 'b' doesn't exist */
49998: "ᵢ",
49999: "ₖ",
50000: "ₘ",
50001: "ₙ",
50002: "ᵣ",
50003: "ₓ",
50004: "₋ㇾ", /* FIXME: 漢文訓読 */
50005: "₊",
50006: "₋",
50010: "g̀",
50012: "$",
50016: "ㇾ", /* FIXME: 漢文訓読 */
50020: "₋", /* FIXME: 漢文訓読 */
50021: "{㆘}", /* FIXME: 漢文訓読 */
50022: "{㆔}", /* FIXME: 漢文訓読 */
50023: "{㆖}", /* FIXME: 漢文訓読 */
50025: "{㆗}", /* FIXME: 漢文訓読 */
50026: "₌", /* FIXME: 漢文訓読 */
50027: "ĕ",
50028: "Č",
50029: "Š",
50030: "ǎ",
50031: "č",
50032: "ě",
50033: "ň",
50034: "ř",
50035: "š",
50036: "ž",
50037: "ヰ",
50038: "ヱ",
50039: "ɯ̈",
50040: "ɰ",
50041: "ữ",
50042: "ʔ",
50043: "ɦ",
50044: "ß",
50045: "ɪ",
50046: "ɴ",
50209: "ɲ",
50210: "ː",
50211: "ς",
}
}
func (*daijirinExtractor) getFontWide() map[int]string {
return map[int]string{
41249: "仿",
41250: "佉",
41251: "侗",
41252: "倘",
41253: "偓",
41254: "傔",
41255: "傖",
41256: "僄",
41257: "僦",
41258: "兕",
41259: "凴",
41260: "刁",
41261: "剉",
41262: "剗",
41263: "劂",
41264: "劓",
41265: "勖",
41266: "卬",
41267: "厓",
41268: "厲",
41269: "呍",
41270: "吧",
41271: "咜",
41272: "呫",
41273: "呦",
41274: "咿",
41275: "咩",
41276: "哿",
41277: "唫",
41278: "嘈",
41279: "嘻",
41280: "噯",
41281: "噲",
41282: "嚚",
41283: "嚬",
41284: "圊",
41285: "圯",
41286: "坌",
41287: "埸",
41288: "埶",
41289: "埤",
41290: "壔",
41291: "壠",
41292: "壚",
41293: "虁",
41294: "奝",
41295: "奭",
41296: "姒",
41297: "婥",
41298: "婕",
41299: "孼",
41300: "尫",
41301: "屩",
41302: "崧",
41303: "嵆",
41304: "嶠",
41305: "嶸",
41306: "幘",
41307: "庾",
41308: "龐",
41309: "弇",
41310: "彀",
41311: "彐",
41312: "彤",
41313: "徉",
41314: "徜",
41315: "徧",
41316: "忉",
41317: "忼",
41318: "忡",
41319: "怵",
41320: "悝",
41321: "惛",
41322: "惕",
41323: "惙",
41324: "惲",
41325: "愷",
41326: "戕",
41327: "扃",
41328: "扑",
41329: "拖",
41330: "拄",
41331: "捃",
41332: "挹",
41333: "摹",
41334: "撝",
41335: "撿",
41336: "昱",
41337: "晡",
41338: "皙",
41339: "腊",
41340: "臏",
41341: "杇",
41342: "枘",
41505: "杻",
41506: "棰",
41507: "棖",
41508: "楨",
41509: "楣",
41510: "橛",
41511: "櫬",
41512: "欛",
41513: "歆",
41514: "殂",
41515: "殭",
41516: "毱",
41517: "氅",
41518: "氐",
41519: "氳",
41520: "淼",
41521: "沅",
41522: "沆",
41523: "汴",
41524: "沔",
41525: "泫",
41526: "泮",
41527: "洄",
41528: "洎",
41529: "洮",
41530: "浥",
41531: "淄",
41532: "涿",
41533: "淝",
41534: "湜",
41535: "渧",
41536: "滃",
41537: "漪",
41538: "漚",
41539: "漳",
41540: "澌",
41541: "瀆",
41542: "灝",
41543: "灤",
41544: "灎",
41545: "炫",
41546: "炷",
41547: "焮",
41548: "焠",
41549: "煜",
41550: "煇",
41551: "煆",
41552: "煨",
41553: "熅",
41554: "熒",
41555: "熇",
41556: "熳",
41557: "燋",
41558: "燁",
41559: "燾",
41560: "凞",
41561: "牓",
41562: "牕",
41563: "牖",
41564: "犍",
41565: "犛",
41566: "猨",
41567: "獐",
41568: "獷",
41569: "獼",
41570: "玕",
41571: "珉",
41572: "琦",
41573: "琚",
41574: "琨",
41575: "璆",
41576: "璉",
41577: "璟",
41578: "璣",
41579: "璘",
41580: "璨",
41581: "璿",
41582: "瓚",
41583: "畎",
41584: "痀",
41585: "痤",
41586: "瘖",
41587: "瘭",
41588: "皞",
41589: "盎",
41590: "盌",
41591: "盬",
41592: "盼",
41593: "眚",
41594: "眙",
41595: "睢",
41596: "睟",
41597: "睜",
41598: "睽",
41761: "矰",
41762: "矻",
41763: "砭",
41764: "确",
41765: "磈",
41766: "磷",
41767: "禘",
41768: "秔",
41769: "窅",
41770: "窠",
41771: "窬",
41772: "窳",
41773: "竽",
41774: "筠",
41775: "簋",
41776: "簠",
41777: "籮",
41778: "糗",
41779: "糕",
41780: "糝",
41781: "紈",
41782: "紓",
41783: "絇",
41784: "絓",
41785: "絜",
41786: "絺",
41787: "綈",
41788: "緂",
41789: "縈",
41790: "縕",
41791: "縑",
41792: "縠",
41793: "縝",
41794: "繇",
41795: "繒",
41796: "繳",
41797: "罽",
41798: "罾",
41799: "翟",
41800: "翬",
41801: "耦",
41802: "聱",
41803: "艴",
41804: "芎",
41805: "芷",
41806: "芮",
41807: "苾",
41808: "茀",
41809: "荇",
41810: "荃",
41811: "莘",
41812: "蒯",
41813: "蓰",
41814: "蕓",
41815: "蕙",
41816: "蕞",
41817: "蕤",
41818: "薏",
41819: "藿",
41820: "蘐",
41821: "虗",
41822: "虢",
41823: "虬",
41824: "虯",
41825: "虺",
41826: "蚑",
41827: "蚱",
41828: "蜋",
41829: "蝘",
41830: "蝥",
41831: "螈",
41832: "螭",
41833: "蠲",
41834: "裊",
41835: "裛",
41836: "褰",
41837: "袪",
41838: "裎",
41839: "裱",
41840: "褚",
41841: "觔",
41842: "觖",
41843: "觳",
41844: "訕",
41845: "訢",
41846: "詘",
41847: "詡",
41848: "詹",
41849: "誾",
41850: "豨",
41851: "豳",
41852: "貒",
41853: "賙",
41854: "贛",
42017: "跎",
42018: "跗",
42019: "踠",
42020: "踔",
42021: "踽",
42022: "蹢",
42023: "輞",
42024: "輭",
42025: "輶",
42026: "轔",
42027: "辧",
42028: "辵",
42029: "辶",
42030: "辶",
42031: "迤",
42032: "邅",
42033: "邈",
42034: "邛",
42035: "邢",
42036: "邳",
42037: "郅",
42038: "鄧",
42039: "鄱",
42040: "鄴",
42041: "酈",
42042: "酛",
42043: "酤",
42044: "酴",
42045: "醃",
42046: "醞",
42047: "醮",
42048: "釃",
42049: "釗",
42050: "鈐",
42051: "鈇",
42052: "鉏",
42053: "鉸",
42054: "銈",
42055: "鍈",
42056: "鏜",
42057: "鐲",
42058: "鑊",
42059: "鑣",
42060: "閒",
42061: "閟",
42062: "閩",
42063: "閽",
42064: "闓",
42065: "闐",
42066: "闚",
42067: "闞",
42068: "阼",
42069: "陘",
42070: "隄",
42071: "雒",
42072: "雞",
42073: "雩",
42074: "靛",
42075: "靳",
42076: "鞺",
42077: "韞",
42078: "韛",
42079: "韡",
42080: "頫",
42081: "顒",
42082: "顓",
42083: "顗",
42084: "顥",
42085: "颺",
42086: "飥",
42087: "餖",
42088: "餼",
42089: "餻",
42090: "饘",
42091: "駔",
42092: "駙",
42093: "騃",
42094: "騶",
42095: "騸",
42096: "魞",
42097: "鮏",
42098: "鯁",
42099: "鰶",
42100: "鴞",
42101: "鵷",
42102: "鵰",
42103: "鷃",
42104: "麨",
42105: "麼",
42106: "黧",
42107: "鼂",
42108: "鼯",
42109: "齁",
42110: "齗",
42273: "龔",
42274: "捥",
42275: "楤",
42276: "丰",
42278: "挊",
42279: "艜",
42280: "桒",
42283: "亍",
42284: "亹",
42285: "儞",
42286: "偁",
42287: "儃",
42288: "佪",
42289: "儋",
42290: "儈",
42291: "侒",
42292: "佷",
42293: "伋",
42294: "傜",
42295: "淸",
42296: "卺",
42297: "划",
42298: "勑",
42299: "匇",
42300: "匃",
42301: "匜",
42302: "㔺",
42303: "嗢",
42304: "囉",
42305: "唽",
42306: "嚕",
42307: "噱",
42308: "嘽",
42309: "嚞",
42310: "喁",
42311: "噞",
42312: "𠵅",
42313: "哯",
42314: "嚩",
42315: "喈",
42316: "𠺕",
42317: "晷",
42318: "叵",
42319: "嗩",
42320: "妋",
42321: "娭",
42322: "嫚",
42323: "嬗",
42324: "𡝂",
42325: "娓",
42326: "姞",
42328: "孁",
42329: "堄",
42330: "埿",
42331: "𡑮",
42332: "坍",
42333: "垸",
42334: "坅",
42335: "坷",
42336: "壎",
42337: "塤",
42338: "堠",
42339: "墪",
42340: "埏",
42341: "媳",
42342: "墉",
42343: "坨",
42344: "圩",
42345: "尰",
42346: "屟",
42347: "屣",
42348: "𡱖",
42349: "异",
42351: "岺",
42352: "岏",
42353: "巋",
42354: "巑",
42355: "帔",
42356: "幉",
42357: "帒",
42358: "幞",
42359: "㡜",
42360: "彇",
42361: "弣",
42362: "弶",
42363: "弽",
42364: "庪",
42365: "擌",
42366: "𢷡",
42529: "擎",
42530: "挗",
42531: "擐",
42532: "挍",
42533: "搯",
42534: "擷",
42535: "掙",
42536: "抳",
42537: "攞",
42538: "挃",
42539: "撾",
42540: "摭",
42541: "熮",
42542: "㸅",
42543: "烑",
42544: "灵",
42545: "煑",
42546: "爕",
42547: "焄",
42548: "獦",
42549: "猧",
42550: "猽",
42551: "獒",
42552: "獯",
42553: "獫",
42554: "玁",
42555: "狁",
42556: "狻",
42557: "瀼",
42558: "瀣",
42559: "洿",
42560: "濊",
42561: "澠",
42562: "潢",
42563: "灊",
42564: "淛",
42565: "涘",
42566: "湌",
42567: "灔",
42568: "𤂖",
42569: "涔",
42570: "涬",
42571: "邾",
42572: "鄘",
42573: "邶",
42574: "鄀",
42575: "鄽",
42576: "菇",
42577: "菆",
42578: "蓀",
42579: "藊",
42580: "蘅",
42581: "芺",
42582: "蒺",
42583: "蔾",
42584: "蘼",
42585: "薁",
42586: "葒",
42587: "蓯",
42588: "蒾",
42589: "蘩",
42590: "蔌",
42591: "蔞",
42592: "菝",
42593: "蕽",
42594: "蘡",
42595: "茛",
42596: "荽",
42597: "孽",
42598: "葜",
42599: "菀",
42600: "薟",
42601: "芾",
42602: "蘘",
42603: "蔲",
42604: "蔯",
42605: "荗",
42606: "莔",
42607: "噶",
42608: "藋",
42609: "莧",
42610: "苆",
42611: "蓪",
42612: "萁",
42613: "藦",
42614: "薷",
42615: "蘞",
42616: "莕",
42617: "蒅",
42619: "芿",
42620: "悆",
42621: "忞",
42622: "惸",
42785: "惝",
42786: "怳",
42787: "惔",
42788: "怍",
42789: "惋",
42790: "扆",
42791: "曛",
42792: "昀",
42793: "昪",
42794: "暍",
42795: "臗",
42796: "臛",
42797: "膘",
42798: "榺",
42799: "樾",
42800: "櫆",
42801: "柀",
42802: "棱",
42803: "橒",
42804: "檞",
42805: "檨",
42806: "杮",
42807: "楉",
42808: "樻",
42810: "桕",
42811: "棼",
42812: "槾",
42813: "楗",
42814: "棙",
42815: "𣑊",
42816: "桄",
42817: "杴",
42818: "枒",
42819: "檫",
42820: "杈",
42821: "欋",
42822: "棅",
42823: "榀",
42824: "棻",
42825: "栭",
42826: "榭",
42827: "棌",
42828: "欵",
42829: "殩",
42830: "殮",
42831: "槩",
42832: "櫲",
42833: "𣏕",
42834: "𬄚", /* FIXME: あて ⿰木惡 */
42835: "穀",
42836: "蒁",
42837: "迱",
42838: "𨗈",
42839: "适",
42840: "逈",
42841: "迍",
42842: "逭",
42843: "迮",
42844: "璈",
42845: "瑄",
42846: "璱",
42847: "玦",
42848: "琯",
42849: "璙",
42850: "珅",
42851: "珣",
42852: "玠",
42853: "瓈",
42854: "璫",
42855: "琫",
42856: "瑍",
42857: "琊",
42858: "疿",
42859: "癕",
42860: "皥",
42861: "皪",
42862: "盦",
42863: "盔",
42864: "瞔",
42865: "睠",
42867: "瞟",
42868: "瞍",
42869: "眶",
42871: "畾",
42872: "矪",
42873: "矬",
42874: "穭",
42875: "𧘱",
42876: "袽",
42877: "襅",
42878: "筯",
43041: "帘",
43042: "笇",
43043: "篗",
43044: "籡",
43045: "籗",
43046: "褲",
43047: "褙",
43048: "粿",
43049: "𥻨",
43050: "𦀌",
43051: "縬",
43052: "罇",
43053: "纆",
43054: "耖",
43055: "耟",
43056: "艉",
43057: "賾",
43058: "蟫",
43059: "蜺",
43060: "蚨",
43061: "蟭",
43062: "蠐",
43063: "螬",
43064: "蜟",
43065: "蠼",
43066: "螋",
43067: "蚍",
43068: "蟟",
43069: "蛁",
43070: "蜞",
43071: "𧏛",
43073: "蝯",
43074: "𪆐",
43075: "鵒",
43076: "鴝",
43077: "鸜",
43078: "鸇",
43079: "鶖",
43080: "𪃹",
43081: "鸍",
43082: "鵩",
43083: "鶡",
43084: "鷴",
43085: "鴒", /* FIXME: 交わる see 広辞苑 {5} for this replacement. should be ⿰𩙿鳥 */
43086: "鷧",
43087: "鏌",
43088: "鎁",
43089: "鍱",
43090: "銙",
43091: "釭",
43092: "鉧",
43093: "鍑",
43094: "鏽",
43095: "錕",
43096: "鋂",
43097: "鋧",
43098: "鐴",
43099: "𫒒", /* FIXME: むね【棟】character is ⿰釒丘 */
43100: "鋐",
43101: "蹔",
43102: "䟽",
43103: "踶",
43104: "詵",
43105: "諐",
43106: "誮",
43107: "謭",
43108: "誷",
43109: "觶",
43110: "釄",
43111: "醼",
43112: "醨",
43113: "釱",
43114: "釻",
43115: "鎛",
43116: "鐧",
43117: "䥫",
43118: "鉃",
43119: "纇",
43120: "熲",
43121: "頞",
43122: "顖",
43123: "蒴",
43124: "蕺",
43125: "芩",
43126: "佺",
43127: "佾",
43128: "俏",
43129: "倻",
43130: "儵",
43131: "噦",
43132: "嗉",
43133: "嘰",
43134: "吒",
43297: "唵",
43298: "唼",
43299: "埦",
43300: "墝",
43301: "埵",
43302: "垜",
43303: "墩",
43304: "圳",
43305: "壒",
43306: "羗",
43307: "搢",
43308: "搩",
43309: "攩",
43310: "擤",
43311: "挵",
43312: "拼",
43313: "擻",
43314: "掽",
43315: "湑",
43316: "濹",
43317: "泔",
43318: "犎",
43319: "桛",
43320: "梣",
43321: "樏",
43322: "梻",
43323: "橐",
43324: "梘",
43325: "梲",
43326: "橅",
43327: "檉",
43328: "㮶",
43329: "櫧",
43330: "枻",
43331: "柃",
43332: "栱",
43333: "栬",
43334: "樝",
43335: "橖",
43336: "朳",
43337: "棭",
43338: "梂",
43339: "𣜌",
43340: "榰",
43341: "柷",
43342: "槵",
43343: "檔",
43344: "桫",
43345: "欏",
43346: "枓",
43347: "楲",
43348: "腭",
43349: "胳",
43350: "腨",
43351: "朓",
43352: "鰧",
43353: "蓏",
43354: "玫",
43355: "琰",
43356: "瑇",
43357: "璩",
43358: "珧",
43359: "瑀",
43360: "瑒",
43361: "瑭",
43362: "玔",
43363: "珖",
43364: "玢",
43365: "皶",
43366: "麬",
43367: "硨",
43368: "磠",
43369: "磤",
43370: "磲",
43371: "砍",
43372: "硾",
43373: "碰",
43374: "硇",
43375: "礀",
43376: "畺",
43377: "裰",
43378: "裑",
43379: "袘",
43380: "襀",
43381: "裓",
43382: "𧚄",
43383: "褘",
43384: "褹",
43385: "襢",
43386: "褨",
43387: "篊",
43388: "笧",
43389: "簁",
43390: "簎",
43553: "簶",
43554: "籰",
43555: "籙",
43556: "籭",
43557: "箯",
43558: "籑",
43559: "荇",
43560: "蓎",
43561: "笯",
43562: "𥫱",
43563: "篅",
43564: "簳",
43565: "簹",
43566: "篔",
43567: "䈇",
43568: "䇮",
43569: "筲",
43570: "笭",
43571: "筎",
43572: "羖",
43573: "籹",
43574: "粏",
43575: "糈",
43576: "糫",
43577: "粼",
43578: "粔",
43579: "粶",
43580: "糙",
43581: "糄",
43582: "粬",
43583: "糵",
43584: "紽",
43585: "緌",
43586: "絁",
43587: "紇",
43588: "纑",
43589: "緦",
43590: "紞",
43591: "纍",
43592: "𥿠",
43593: "羿",
43594: "翺",
43595: "翥",
43596: "羕",
43597: "蝲",
43598: "蟖",
43599: "蚸",
43600: "蜓",
43601: "蜾",
43602: "螇",
43603: "蠁",
43604: "蜱",
43605: "𧐐",
43606: "蛺",
43607: "虵",
43608: "蝱",
43609: "蠔",
43610: "蝤",
43611: "蛑",
43612: "蠊",
43613: "蠆",
43614: "螠",
43615: "鈸",
43616: "錑",
43617: "鎺",
43618: "鍰",
43619: "鏁",
43620: "銲",
43621: "鈹",
43622: "鏟",
43623: "鐖",
43624: "鑯",
43625: "闋",
43627: "鏱",
43628: "鈼",
43629: "𨫤",
43630: "鬌",
43631: "鞖",
43632: "靪",
43633: "鞚",
43634: "靮",
43635: "鬠",
43636: "鱘",
43637: "鮬",
43638: "鱰",
43639: "鱪",
43640: "鯳",
43641: "鱵",
43642: "鯯",
43643: "鯧",
43644: "魳",
43645: "鯎",
43646: "鯥",
43809: "鮄",
43810: "鱩",
43811: "鱮",
43812: "鯇",
43813: "鮞",
43814: "鰖",
43815: "鮸",
43816: "鯷",
43817: "魬",
43818: "鯘",
43819: "鱫",
43820: "鱝",
43821: "鱏",
43822: "鱓",
43823: "鰱",
43824: "鮊",
43825: "鱛",
43826: "鮾",
43827: "鱁",
43828: "鮧",
43829: "魦",
43830: "鱭",
43831: "孒",
43832: "甪",
43833: "厴",
43834: "尩",
43835: "车",
43836: "电",
43837: "邌",
43838: "仐",
43839: "么",
43840: "蠃",
43841: "兗",
43842: "矠",
43843: "矟",
43844: "劻",
43845: "勰",
43846: "斲",
43847: "姧",
43848: "嬥",
43849: "妤",
43850: "媞",
43851: "縁", /* FIXME: 彐頭, Daijisen uses this char */
43852: "廋",
43853: "庿",
43854: "愒",
43855: "憍",
43856: "愐",
43857: "豇",
43858: "豉",
43859: "雘",
43860: "彔",
43861: "邕",
43862: "隺",
43863: "幫",
43864: "帮",
43865: "毈",
43866: "𢏳", /* FIXME: ペテン */
43867: "彽",
43868: "徸",
43869: "鄯",
43870: "郄",
43871: "邙",
43872: "隩",
43873: "犰",
43874: "狳",
43875: "獱",
43876: "貛",
43877: "攲",
43878: "爗",
43879: "滎",
43880: "煠",
43881: "燄",
43882: "炻",
43883: "烤",
43884: "炗",
43885: "剡",
43886: "昉",
43887: "昰",
43888: "甗",
43889: "𤭯",
43890: "瓫",
43891: "𤚥",
43892: "敔",
43893: "忩",
43894: "毿",
43895: "瘵",
43896: "痎",
43897: "癋",
43898: "疒",
43899: "癤",
43900: "癭",
43901: "瘙",
43902: "痟",
44065: "痏",
44066: "眴",
44067: "睺",
44068: "毗",
44069: "翮",
44070: "𥝱",
44071: "稭",
44072: "稹",
44073: "祆",
44074: "禖",
44075: "皁",
44076: "皝",
44077: "翃",
44078: "舢",
44079: "艠",
44080: "𦨞",
44081: "⿰舟若", /* FIXME: 抄物書き */
44082: "趯",
44083: "醶",
44084: "跑",
44085: "蹰",
44086: "躃",
44087: "跆",
44088: "韉",
44089: "饠",
44090: "躻",
44091: "髹",
44092: "髁",
44093: "餛",
44094: "餺",
44095: "飣",
44096: "飰",
44097: "饆",
44098: "靏",
44099: "閦",
44100: "闈",
44101: "顬",
44102: "頊",
44103: "骶",
44104: "髐",
44105: "䯊",
44106: "鶍",
44107: "鴲",
44108: "鸕",
44109: "鵼",
44110: "鷀",
44111: "䳑",
44112: "鼹",
44113: "鼷",
44114: "髖",
44115: "𪀚",
44116: "鸊",
44117: "鷉",
44118: "鵟",
44119: "鷟",
44120: "鵂",
44121: "鶹",
44122: "鴗",
44123: "鷚",
44124: "鵇",
44125: "鶊",
44126: "鶼",
44127: "觫",
44128: "觘",
44129: "觿",
44130: "剕",
44131: "颸",
44132: "飇",
44133: "飈",
44134: "贉",
44135: "賖",
44136: "赬",
44137: "鼗",
44138: "鼐",
44139: "鼺",
44140: "齝",
44141: "齭",
44142: "齵",
44143: "龗",
44144: "蓂",
44145: "藎",
44146: "葼",
44147: "茼",
44148: "藭",
44149: "薼",
44150: "菪",
44151: "莩",
44152: "蓽",
44153: "苕",
44154: "芡",
44155: "茺",
44156: "薗", /* FIXME: 汝人, should be ⿱艹圃, see daijisen ex. sent. */
44157: "蔤",
44158: "芸", /* FIXME: Should be trad. chin. font */
44321: "葈",
44322: "你",
44323: "儛",
44324: "𦬇", /* FIXME: ささぼさつ */
44325: "塼",
44326: "坼",
44327: "塌",
44328: "垿",
44329: "姮",
44330: "媧",
44331: "嬙",
44332: "渲",
44333: "洦",
44334: "滇",
44335: "潙",
44336: "澶",
44337: "涮",
44338: "涪",
44339: "啐",
44340: "嚈",
44341: "噠",
44342: "弴",
44343: "哆",
44344: "嚳",
44345: "洱",
44346: "灃",
44347: "濞",
44348: "湉",
44349: "泆",
44350: "洹",
44351: "昫",
44352: "暠",
44353: "昕",
44354: "昺",
44355: "桲",
44356: "橉",
44357: "窼",
44358: "穇",
44359: "秫",
44360: "秭",
44361: "禛",
44362: "祜",
44363: "祹",
44364: "蜇",
44365: "蛼",
44366: "蚜",
44367: "蚉",
44368: "蛽",
44369: "虻", /* FIXME: 蜻蛉, see ex sent. for 虻(アム) */
44370: "螵",
44371: "蚇",
44372: "螓",
44373: "蜐",
44374: "瘀",
44375: "㾮",
44376: "瘼",
44377: "𤸎",
44378: "痱",
44379: "癯",
44380: "癁",
44381: "礴",
44382: "礜",
44383: "砉",
44384: "耷",
44385: "耼",
44386: "𨏍",
44387: "軑",
44388: "轘",
44389: "輀",
44390: "魹",
44391: "韴",
44392: "鞲",
44393: "𩊱",
44394: "𩊠",
44395: "鮲",
44396: "𫙧", /* FIXME: ⿰魚近(ちか) */
44397: "鰘",
44398: "𩸭",
44399: "鰙",
44400: "鯝",
44401: "鰣",
44402: "鯽",
44403: "𩸽",
44404: "魶",
44405: "鰚",
44406: "鱲",
44407: "鱜",
44408: "𩺊",
44409: "鱊",
44410: "鱐",
44411: "鱟",
44412: "魣",
44413: "魫",
44414: "驎",
44577: "麯",
44578: "驌",
44579: "騮",
44580: "驊",
44581: "駃",
44582: "騠",
44583: "駰",
44584: "騭",
44585: "麅",
44586: "麞",
44587: "鹿子", /* FIXME: should be ⿰鹿子 */
44588: "亻",
44589: "乚",
44590: "㔾",
44591: "氵",
44592: "艹",
44593: "艹",
44594: "扌",
44595: "阝",
44596: "犭",
44597: "阝",
44598: "刂",
44599: "𠆢",
44600: "忄",
44601: "㓁",
44602: "耂",
44603: "爫",
44604: "爫",
44605: "灬",
44606: "⺗",
44607: "氺",
44608: "𤣩",
44609: "罒",
44610: "礻",
44611: "衤",
44612: "飠",
44613: "𩙿",
44619: "𤣥", /* FIXME: 欠画 */
44621: "⺩",
44622: "⺏", /* FIXME: 尢, this but with with leg stretched as in 尩 */
44623: "भर", /* FIXME: 勃嚕唵/bhrūṃ in sanskrit */
44624: "㐂",
44625: "𛀸", /* FIXME: 変体仮名 (こ) */
44626: "𛄋", /* FIXME: 異体文字 (は)*/
44627: "𛀆", /* FIXME: 変体仮名 (い) */
44628: "𛁟", /* FIXME: 変体仮名 (た) */
44629: "𛀙", /* FIXME: 変体仮名 (か) */
44630: "",
44631: "⁑",
44632: "©",
44633: "♮",
44634: "𝄐", /* FIXME: pause (music) */
44635: "𝄑", /* FIXME: pause (music) */
44636: "𝅘𝅥𝅯", /* FIXME: semiquaver/16th note */
44637: "⁂",
44638: "",
44639: "㊙",
44640: "☞",
44641: "˘",
44644: "卐", /* FIXME: should be tilted 45 degrees, not in unicode */
44645: "卐",
44646: "✓",
44647: "ƿ",
44648: "℅",
44649: "®",
44650: "∛𝑎",
44651: "Æ",
44652: "æ",
44653: "ffl",
44654: "fl",
44655: "ⁿ√",
44656: "œ",
44657: "∘",
44658: "∓",
44659: "^", /* FIXME: should be printed double width */
44660: "℧",
44661: "√2",
44662: "√𝑎",
44663: "©",
44664: "(公)", /* FIXME: 丸公 enclosed 公 */
44665: "㊜",
44666: "〖",
44667: "〗",
45106: "--",
45107: "―",
45108: "☰",
45109: "☷",
45110: "☱",
45111: "☲",
45112: "☴",
45113: "☵",
45114: "☶",
45115: "", /* FIXME: くの字点 */
45116: "\゙", /* FIXME: くの字点 */
45117: "", /* FIXME: くの字点 */
45118: "〻",
45119: "ǂ", /* FIXME: 複十字, probably not the char they wanted */
45120: "℉",
45121: "〽",
45122: "卍",
45123: "♨",
45124: "♠",
45125: "♥",
45126: "𝄐", /* FIXME: フェルマータ */
45127: "℥",
45130: "♩",
45131: "𝄉", /* FIXME: ダルセーニョ */
45132: "𝄪", /* FIXME: 重嬰記号 */
45133: "❶",
45134: "❷",
45135: "❸",
45136: "❹",
45137: "❺",
45138: "❻",
45139: "❼",
45140: "❽",
45141: "❾",
45142: "❿",
45143: "⓫",
45144: "⓬",
45145: "⓭",
45146: "⓮",
45147: "⓯",
45148: "⓰",
45149: "⓱",
45150: "⓲",
45151: "⓳",
45152: "ゑ",
45153: "ヶ", /* FIXME: 交野, uses small ガ not in unicode */
45157: "ト", /* FIXME: 九秋, not sure what they are trying to indicate */
45158: "",
45160: "ミ", /* FIXME: 青海苔, not sure what they are trying to indicate */
45162: "ㇿ",
45163: "ヰ",
45164: "ン", /* FIXME: 捨て仮名, probably small 'ン' (not a char in unicode) */
45175: "㏋",
}
}