LiMinggang / madedit-mod

MadEdit-Mod is a cross platform Text/Hex editor(based on the madedit project @ sourceforge)
GNU General Public License v3.0
124 stars 27 forks source link

'瀰' <=> '㳽' #302

Closed bluelovers closed 4 years ago

bluelovers commented 4 years ago

<=>

今天在 cjk-conv 那邊發現這個字沒有正確對應

然後試了一下 你這裡也是一樣 本來想在你這裡也修改發PR 但我實在不知道你的對應表怎麼修改xd

LiMinggang commented 4 years ago

我的对应表是unicode的十六进制内码。 瀰 <=> 㳽 {U+7030} <=> {U+3CFD}

我有个问题,就是泛中文支持那个功能,目前是按照not safe模式进行匹配的,实际上不够完善,你那里有完整的异体字的对应表么?

bluelovers commented 4 years ago

image

temp.zip

這個 zip 來自以下代碼

import { table_jp, table_plus } from 'cjk-conv/lib/zh/table/table';
import { outputJSON } from 'fs-extra';
import { TABLE, TABLE_SAFE } from 'cjk-conv/lib/jp/core';
import { _greedyTableCacheMap } from 'cjk-conv/lib/zh/table/greedy';

/**
 * 異體字對應表
 */
outputJSON('./temp/table_jp.json', table_jp, {
    spaces: 2
});

/**
 * 異體字對應表(貪婪)
 */
outputJSON('./temp/table_plus.json', table_plus, {
    spaces: 2
});

/**
 * 簡繁日漢字對應表
 */
outputJSON('./temp/jp.TABLE.json', TABLE, {
    spaces: 2
});

/**
 * 簡繁日漢字對應表
 */
outputJSON('./temp/jp.TABLE_SAFE.json', TABLE_SAFE, {
    spaces: 2
});

(() => {
    let ls = _greedyTableCacheMap.entries();

    let maps = [];

    for (let a of ls)
    {
        maps.push(a)
    }

    /**
     * 貪婪對應表
     */
    return outputJSON('./temp/_greedyTableCacheMap.json', maps, {
        spaces: 2
    });
})();

我是用以下概念來計算出漢字配對的

以上這些結果得出的字串表合併後成為對應表

https://github.com/bluelovers/cjk-convert/blob/849c7497fdc6708b35b1682d691bb647f9c253f9/lib/zh/table/index.ts#L75

LiMinggang commented 4 years ago

主要差在这个貪婪配對表上,没想好怎么实现这个

bluelovers commented 4 years ago

table_jp.json 是只有主KEY符合時 才會給出對應表

table_plus.json 是主KEY與對應表內 任何一個字符合就給出對應表

_greedyTableCacheMap.json 我覺得暫時沒必要實現這個 因為那個已經有點偏向搜尋/排序專用的特殊表