跳转至

🔣 字符集过滤 (Charset Filter):精准把控生僻字的边界

告别一刀切的生僻字屏蔽。让输入法在保持日常纯净的同时,精准联动繁体与特殊字符集。

在日常打字中,绝大多数人只需要用到几千个常用汉字。如果输入法的字库太大,经常会在翻页时看到满屏的生僻字(甚至乱码框),严重干扰选词效率。

万象拼音默认开启了字符集过滤,将日常显示的范围极其精准地锁定在“8105 个通用规范汉字 + 𰻞𰻞(biáng biáng)”等常用字内。


⚡ 核心交互:一键切换字集状态

当你偶尔需要打出极其生僻的古文或特殊扩展汉字时,无需去修改繁琐的配置,只需通过快捷键一键放行:

大/小字集快捷切换

在打字状态下按下 Ctrl + g,即可在【小字集(日常过滤模式)】与【大字集(全量生僻字模式)】之间瞬间切换。

patch:
  switches/@6/reset: 1   # @3 代表在 switches 的第7组里加入 reset: 1 参数,即可长期启用

🔬 底层降维打击:二进制滤镜与编码级标记

万象的字符集过滤,绝不仅是写死一个 charset.dict.yaml 字表那么简单。

我们在底层挂载了一个强大的二进制滤镜数据库 charset_reverse.bin。它深入到了文字的编码层,给字库中的每一个汉字都打上了极其精细的“身份标签”。

汉字身份标签 (Tag) 释义

万象内部将汉字划分为了十余种维度,你可以通过这些英文字母来极度精细地控制字集:

  • 规范与常用a (通用规范汉字表 8105字)、b (GB2312)、g (GBK)

  • 繁体与港台T (Big5 台港澳常用)、j (OpenCC 简体)、f (OpenCC 通用繁体)、h (OpenCC 香港繁体)、t (OpenCC 台湾繁体)

  • Unicode 扩展区u (基本区 U+4E00-U+9FFF)、A-I (各扩展区,支持至 Ext-I)、c (兼容区)


🧠 终极黑科技:多状态联动与智能“求并集”

传统过滤方案最大的痛点是:当你开启繁体输出(如香港繁体)时,如果不关掉过滤,很多香港专属繁体字就会被生僻字词典“误杀”导致打不出来。

万象设计了一套跨开关联动与智能求并集的逻辑: 当你在菜单中切换到 s2hk(香港繁体)模式时,底层引擎会自动将基础字表(8105字)与香港繁体专属字表(标签 h)进行求并集。这意味着:通用汉字 + 香港繁体字全都能完美显示,而毫不相关的生僻字依然被死死挡在门外!


🛠️ 如何通过 Patch 微调你的专属字集?

如果你发现某个你常用的字(比如“囧”)不在 8105 规范字表中,导致开启过滤时打不出来;或者你想自定义简繁转换时的过滤范围,可以在 wanxiang.custom.yaml 中进行极客级调优。

参数释义:Base、Addlist 与 Blacklist

  • base: 调用的底层标签集(支持多选,如 aj 代表 8105字 + 简体)。

  • addlist (白名单): 强制放行的字。即使它不在 base 里,只要写在这里,就能通过过滤。

  • blacklist (黑名单): 强制拦截的字。即使它在 base 里,只要写在这里,就绝对不显示。

配置示例 (Patch 战术):

wanxiang.custom.yaml 字符集微调示例
patch:
  # 注意:这里会覆盖原有的 charset 列表,请确保包含你需要的联动开关
  charset:
    # 1. 主控开关:日常小字集模式
    - option: charset_filter
      base: a            # 调用标签 a (通用规范汉字表)
      addlist:           # 💡 白名单:把常用的非 8105 字强行加入
        - "诶濛硷氽尛躝〇冇吔咗囧屌鲶芶咲畑垅𰻝𰻞龍朙"
      blacklist: []      # 黑名单为空

    # 2. 联动开关:通用繁体模式
    - option: s2t
      base: af            # 开启 s2t 时,自动并入标签 f (通用繁体)
      addlist: []
      blacklist: []

    # 3. 联动开关:香港繁体模式
    - option: s2hk
      base: ah            # 开启 s2hk 时,自动并入标签 h (香港繁体)
      addlist: []
      blacklist: []

    # 4. 联动开关:台湾繁体模式
    - option: s2tw
      base: at            # 开启 s2tw 时,自动并入标签 t (台湾繁体)
      addlist: []
      blacklist: []
之所以每一个都写入a,是因为简繁转换后,简体将变成繁体,这样写能继承简体的权重排序

万象字符集控制:收放自如,精准到每一个字节。