├── requirements.txt
├── config
└── config.json
├── app.py
├── Dockerfile
├── navichina.yaml
├── args
└── __init__.py
├── README.md
├── textcompare.py
├── .gitignore
├── cover.py
├── search.py
├── proxy.py
├── LICENSE
└── ttscn.py
/requirements.txt:
--------------------------------------------------------------------------------
1 | Flask==3.0.3
2 | flask_caching==2.3.0
3 | Requests==2.32.3
4 | waitress==3.0.0
5 |
--------------------------------------------------------------------------------
/config/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "server": {
3 | "ip": "*",
4 | "port": 22522
5 | },
6 | "auth": {}
7 | }
--------------------------------------------------------------------------------
/app.py:
--------------------------------------------------------------------------------
1 | import logging
2 | import sys
3 | import threading
4 |
5 | from waitress import serve
6 | from args import GlobalArgs
7 | from cover import download_covers_auto
8 | from proxy import app
9 |
10 | args = GlobalArgs()
11 |
12 | def run_server(debug=False):
13 | if not debug:
14 | # Waitress WSGI 服务器
15 | serve(app, host=args.ip, port=args.port, threads=32, channel_timeout=30)
16 | else:
17 | app.run(host='*', port=args.port, debug=True)
18 |
19 |
20 | if __name__ == '__main__':
21 | # 对Python版本进行检查(要求Python 3.10+)
22 | if sys.version_info < (3, 10):
23 | raise RuntimeError(
24 | "Python 3.10+ required, but you are using Python {}.{}.{}.".format(*sys.version_info[:3])
25 | )
26 | # 日志配置
27 | logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
28 | logger = logging.getLogger('')
29 | task_thread = threading.Thread(target=download_covers_auto)
30 | task_thread.start()
31 | # 启动
32 | logger.info("正在启动服务器")
33 | run_server(args.debug)
34 |
--------------------------------------------------------------------------------
/Dockerfile:
--------------------------------------------------------------------------------
1 | # 第一阶段:安装GCC
2 | FROM python:3.11-alpine as gcc_installer
3 |
4 | # 安装GCC及其他依赖
5 | # RUN apk update --repository=https://mirrors.aliyun.com/alpine/v3.20/main \
6 | # --repository=https://mirrors.aliyun.com/alpine/v3.20/community && \
7 | # apk add --no-cache gcc musl-dev jpeg-dev zlib-dev libjpeg-turbo-dev
8 |
9 | RUN echo "https://mirrors.aliyun.com/alpine/v3.20/main" > /etc/apk/repositories && \
10 | echo "https://mirrors.aliyun.com/alpine/v3.20/community" >> /etc/apk/repositories && \
11 | apk update && \
12 | apk add --no-cache gcc musl-dev jpeg-dev zlib-dev libjpeg-turbo-dev
13 |
14 |
15 | # 第二阶段:安装Python依赖
16 | FROM gcc_installer as requirements_installer
17 |
18 | # 设置工作目录
19 | WORKDIR /app
20 |
21 | # 只复制 requirements.txt,充分利用 Docker 缓存层
22 | COPY ./requirements.txt /app/
23 |
24 | # 安装Python依赖
25 | RUN pip install --no-user --prefix=/install -r requirements.txt -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
26 |
27 | # 第三阶段:运行环境
28 | FROM python:3.11-alpine
29 |
30 | # 设置工作目录
31 | WORKDIR /app
32 |
33 | # 复制Python依赖
34 | COPY --from=requirements_installer /install /usr/local
35 |
36 | # 复制项目代码
37 | COPY ./ /app
38 |
39 | # 设置启动命令
40 | CMD ["python", "/app/app.py"]
41 |
--------------------------------------------------------------------------------
/navichina.yaml:
--------------------------------------------------------------------------------
1 | services:
2 | navichina:
3 | container_name: navichina
4 | image: tooandy/navichina:latest
5 | user: 1000:1000 # should be owner of volumes
6 | ports:
7 | - 22522:22522 # tooandy/navidrome 默认使用 22522 端口访问 navichina
8 | restart: unless-stopped
9 | volumes:
10 | - /tmp/.cache:/.cache
11 | - /path/to/your/music/:/music # 需要有写权限.
12 | environment:
13 | - COVER_AUTO_DOWNLOAD:false # 默认 false, 若为 true, 需要配置 /music 卷映射 和 ALBUM_REGEX_PATTERN 变量
14 | - ALBUM_REGEX_PATTERN:(.*) # COVER_AUTO_DOWNLOAD 为 true 时启用, 表示如何处理 /music/中的专辑名. 默认全匹配. 如果是 2004-七里香, 由于专辑名时 "七里香", 则填写 "\d+-(.*)", 一定要有一个 group
15 |
16 | 以下 navidrome 是官方推荐的配置. 根据自己需要更改
17 | navidrome:
18 | image: tooandy/navidrome:develop
19 | user: 1000:1000 # should be owner of volumes
20 | network_mode: host # 使用容器的话, 必须为 host 模式, 因为非host模式, 容器内 127.0.0.1 指向的是容器内不网络, 不能访问到宿主机
21 | restart: unless-stopped
22 | environment:
23 | # Optional: put your config options customization here. Examples:
24 | ND_SCANSCHEDULE: 1h
25 | ND_LOGLEVEL: info
26 | ND_SESSIONTIMEOUT: 24h
27 | ND_BASEURL: ""
28 | volumes:
29 | - "/path/to/data:/data"
30 | - "/path/to/your/music/folder:/music"
31 | depends_on:
32 | - navichina
33 |
34 |
--------------------------------------------------------------------------------
/args/__init__.py:
--------------------------------------------------------------------------------
1 | import argparse
2 | import json
3 | import logging
4 | import os
5 |
6 | logger = logging.getLogger(__name__)
7 |
8 | # 启动参数解析器
9 | parser = argparse.ArgumentParser(description="navidrome 网易云代理插件")
10 | # 添加一个 `--port` 参数,默认值 22522
11 | parser.add_argument('--port', type=int, default=22522, help='应用的运行端口,默认 22522')
12 | parser.add_argument("--debug", action="store_true", help="Enable debug mode")
13 | kw_args, unknown_args = parser.parse_known_args()
14 |
15 |
16 | # 按照次序筛选首个非Bool False(包括None, '', 0, []等)值;
17 | # False, None, '', 0, []等值都会转化为None
18 | def first(*args):
19 | """
20 | 返回第一个非False值
21 | :param args:
22 | :return:
23 | """
24 | result = next(filter(lambda x: x, args), None)
25 | return result
26 |
27 |
28 | class DefaultConfig:
29 | def __init__(self):
30 | self.ip = '*'
31 | self.port = 22522
32 |
33 |
34 | class ConfigFile:
35 | """
36 | 读取json配置文件
37 | """
38 |
39 | def __init__(self):
40 | json_config = {
41 | "server": {
42 | "ip": "*",
43 | "port": 22522
44 | }
45 | }
46 | file_path = os.path.join(os.getcwd(), "config", "config.json")
47 | try:
48 | with open(file_path, "r+") as json_file:
49 | json_config = json.load(json_file)
50 | except FileNotFoundError:
51 | # 如果文件不存在,则创建文件并写入初始配置
52 | directory = os.path.dirname(file_path)
53 | if not os.path.exists(directory):
54 | os.makedirs(directory)
55 | with open(file_path, "w+") as json_file:
56 | json.dump(json_config, json_file, indent=4)
57 | self.server = json_config.get("server", {})
58 | self.port = self.server.get("port", 0)
59 | self.ip = self.server.get("ip", "*")
60 |
61 |
62 | # 环境变量定义值
63 | class EnvVar:
64 | def __init__(self):
65 | self.port = os.environ.get('API_PORT', None)
66 |
67 |
68 | env_args = EnvVar()
69 | config_args = ConfigFile()
70 | default = DefaultConfig()
71 |
72 |
73 | # 按照优先级筛选出有效值
74 | class GlobalArgs:
75 | def __init__(self):
76 | self.port = first(env_args.port, kw_args.port, config_args.port, default.port)
77 | self.ip = first(config_args.ip, default.ip)
78 | self.debug = kw_args.debug
79 | self.version = "1.0.0"
80 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | [](https://hub.docker.com/r/tooandy/navichina)
2 |
3 | ## 背景
4 | 由于 navidrome 只能使用 Spotify 获取歌曲封面, 通过 Last.fm 获取艺术家信息和专辑信息, 对于中文歌曲来说, 不太友好, 例如:
5 | - 对于华语歌手来说, Last.fm 中缺失大多数艺术家描述
6 | - 从 Last.fm 中获取的艺术家描述基本上都是英文的
7 | - 从 Spotify 获取的封面信息缺失.
8 | - 由于神秘原因, 访问 Spotify 不稳定.
9 |
10 | 因此考虑使用使用网易云音乐的接口代替 Last.fm 和 Spotify.
11 |
12 | 由于 navidrome 使用 golang 开发, 而我不懂 golang, 因此没有能力直接在 navidrome 上贡献源码. 只能通过这种撇脚的方式, 来解决这个问题.
13 |
14 | ## 解决思路
15 | 1. 修改 navidrome 访问 Spotify 和 Last.fm 的默认地址(具体在 `core/agents/Last.fm/client.go` 和 `core/agents/Spotify/client.go`), 替换为访问本地 `22520` 端口的代理
16 | 2. 在 `22520` 端口上, 启动本代理插件, 拦截 navidrome 原本应该向 Spotify 和 Last.fm 发起的请求.
17 | 3. 根据拦截的请求信息, 访问网易云的接口, 获取必要的信息, 主要包括艺术家/专辑封面, 描述等
18 |
19 | ## 实现效果
20 | 1. 不再访问 Spotify, 但仍会访问 Last.fm.
21 | 2. 通过网易云音乐对艺术家和专辑的描述, 丰富了 Last.fm 的查询结果.
22 |
23 | ## 使用方法
24 | ### **1. 直接使用已有docker镜像运行(推荐)**
25 | 直接使用已经编译完成的 docker 镜像, 并使用如下 docker-compose.yaml, 可直接运行 [navidrome](https://github.com/TooAndy/navidrome) + navichina.
26 | ```shell
27 | docker compose -f docker-compose.yaml up -d
28 | ```
29 |
30 | docker-compose.yaml 内容如下, 如果需要修改配置, 请参考注释
31 |
32 | ```yaml
33 | services:
34 | navidrome:
35 | container_name: navidrome
36 | image: tooandy/navidrome:latest
37 | user: 0:0 # 需要对卷有写入权限
38 | network_mode: host
39 | restart: unless-stopped
40 | environment:
41 | - ND_CONFIGFILE=/data/navidrome.toml
42 | # Spotify 账号已不再需要,但仍需要配置(非空值即可,例如下面的AAAA、BBBB),否则无法启用 Spotify 的功能
43 | - ND_SPOTIFY_ID=AAAA
44 | - ND_SPOTIFY_SECRET=BBBB
45 | # Lastfm 账号仍然需要,注册Last.FM账户后,前往 https://www.last.fm/zh/api/account/create 创建 API 帐户
46 | - ND_LASTFM_APIKEY=<根据真实账号填写>
47 | - ND_LASTFM_SECRET=<根据真实账号填写>
48 | - ND_LASTFM_LANGUAGE=zh
49 | volumes:
50 | - <配置文件路径>:/data # 配置文件放在 /var/lib/navidrome 中, 生成的数据库文件也会放在这里
51 | - <音乐路径>:/music
52 | depends_on:
53 | - navichina
54 |
55 | navichina:
56 | container_name: navichina
57 | image: tooandy/navichina:latest
58 | user: 0:0 # 需要对卷有写入权限.
59 | restart: unless-stopped
60 | volumes:
61 | - <音乐路径>:/music # 如果需要 navidrome 将艺术家和专辑封面下载到音乐路径中, 需要和 navidrome 的卷设置相同.
62 | ports:
63 | - 22522:22522 # 外部端口需要设置为 22522, 因为 tooandy/navidrome 容器默认访问 22522 端口. 如果需要修改端口, 建议使用 navichina 项目中的 build-navidrome.sh 脚本重新构建一个镜像
64 | ```
65 |
66 | ### 2. 自己编译打包运行
67 | ***确保本地安装了 node, go 和 TagLib***. 具体版本要求见 [Navidrome](https://www.navidrome.org/docs/installation/build-from-source/)
68 | ```shell
69 | git clone https://github.com/TooAndy/navichina.git
70 | cd navichina
71 | # 需要 docker 环境. 默认构建为 deluan/navidrome:develop 镜像
72 | sh build-navidrome.sh
73 | # 通过 docker 的方式, 运行本项目的代理软件和部署修改源码重新编译后的 deluan/navidrome:develop 镜像
74 | # 注意修改 navichina.yaml 中的配置
75 | docker compose -f navichina.yaml up -d
76 | ```
77 | > 如果需要修改本代理插件的端口, 在 `build-navidrome.sh` 脚本中修改 `PORT` 变量
78 |
79 | > 如果需要使用其他方式运行本插件和 navidrome, 可以自己摸索一下, 就这几行代码, 比较简单
80 |
81 | ## 说明
82 | 项目中的大量代码从 [LrcApi](https://github.com/HisAtri/LrcApi) 项目复制过来. 感谢 LrcApi 开源贡献 @HisAtri
83 |
84 | ## 协议
85 | GPL-3.0 license
86 |
87 | ## 相关链接
88 | 1. [Navidrome 官网](https://www.navidrome.org/)
89 | 2. [官方 Navidrome github 仓库](https://github.com/navidrome/navidrome)
90 | 2. [tooandy/navidrome/ github 仓库](https://github.com/tooandy/navidrome)
91 | 2. [LrcApi](https://github.com/HisAtri/LrcApi)
92 | 3. [音流 StreamMusic](https://github.com/gitbobobo/StreamMusic)
93 |
--------------------------------------------------------------------------------
/textcompare.py:
--------------------------------------------------------------------------------
1 | import re
2 |
3 | from ttscn import t2s
4 |
5 | """
6 | 本模块算法针对常见音乐标题匹配场景应用,着重分离度和效率。
7 | Levenshtein Distance算法实际表现不佳
8 | 目前没有好的轻量nn实现,不考虑上模型
9 | 当前数据集R~=0.8
10 |
11 | COPY FROM LRCAPI (https://github.com/HisAtri/LrcApi)
12 | """
13 |
14 |
15 | def text_convert(text: str):
16 | patterns = [
17 | r"(? max_length:
42 | max_length = dp[i][j]
43 | else:
44 | dp[i][j] = 0
45 | # 返回最长匹配长度
46 | return max_length
47 |
48 |
49 | def str_duplicate_rate(str1, str2):
50 | """
51 | 用于计算重复字符
52 | """
53 | set1 = set(str1)
54 | set2 = set(str2)
55 |
56 | common_characters = set1.intersection(set2)
57 | total_characters = set1.union(set2)
58 |
59 | similarity_ratio = len(common_characters) / len(total_characters)
60 | return similarity_ratio
61 |
62 |
63 | def calculate_duplicate_rate(list_1, list_2):
64 | """
65 | 用于计算重复词素
66 | """
67 | count = 0 # 计数器
68 | for char in list_1:
69 | char_sim = []
70 |
71 | # 对每个词素进行association计算
72 | for char_s in list_2:
73 | char_sim.append(association(char, char_s))
74 | count += max(char_sim)
75 | duplicate_rate = count / len(list_1) # 计算重复率
76 | return duplicate_rate
77 |
78 |
79 | # 分级
80 | def association(text_1: str, text_2: str) -> float:
81 | """
82 | 通过相对最大匹配距离、相对最小编辑长度(ED)
83 | 测量文本相似度
84 | 最长相似、字符重复结合
85 | 权重混合
86 | :param text_1: 用户传入文本
87 | :param text_2: 待比较文本
88 | :return: 相似度 float: 0~1
89 | """
90 | if text_1 == '':
91 | return 0.5
92 | if text_2 == '':
93 | return 0
94 | text_1 = text_1.lower()
95 | text_2 = text_2.lower()
96 | common_ratio = longest_common_substring(text_1, text_2) / len(text_1)
97 | string_dr = str_duplicate_rate(text_1, text_2)
98 | similar_ratio = common_ratio * (string_dr ** 0.5) ** (1 / 1.5)
99 | return similar_ratio
100 |
101 |
102 | def assoc_artists(text_1: str, text_2: str) -> float:
103 | if text_1 == "":
104 | return 0.5
105 | delimiters = [",", "\\", "&", " ", "+", "|", "、", ",", "/"] # 使用这些分隔符对artists进行分割
106 | delimiter_pattern = '|'.join(map(re.escape, delimiters)) # 构建正则表达式(自动转义)
107 | # 对文本进行繁简转换,使用re分割字符串为列表,并使用list-filter函数去除空项
108 | text_li_1 = list(filter(None, re.split(delimiter_pattern, t2s(text_1))))
109 | text_li_2 = list(filter(None, re.split(delimiter_pattern, t2s(text_2))))
110 | ar_ratio = calculate_duplicate_rate(text_li_1, text_li_2)
111 | return ar_ratio
112 |
113 |
114 | def zero_item(text: str) -> str:
115 | punctuation = "'\"?><:;/!@#$%^&*()_-+=!,。、?“”:;【】{}[]()()|~·`~[]「」{}〖〗『』〈〉«»〔〕‹›〝〞‘’''…#"
116 | text = text.replace(" ", "")
117 | for text_z in text:
118 | if text_z not in punctuation:
119 | return text_z
120 | return text[0] if text else text
121 |
122 |
123 | if __name__ == "__main__":
124 | text_s = "aaaa&bbbb&ccccc"
125 | text_r = "aaaa&ccccc&bbbb"
126 | print(str_duplicate_rate(text_s, text_r))
127 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 | *$py.class
5 |
6 | # C extensions
7 | *.so
8 |
9 | # Distribution / packaging
10 | .Python
11 | build/
12 | develop-eggs/
13 | dist/
14 | downloads/
15 | eggs/
16 | .eggs/
17 | lib/
18 | lib64/
19 | parts/
20 | sdist/
21 | var/
22 | wheels/
23 | share/python-wheels/
24 | *.egg-info/
25 | .installed.cfg
26 | *.egg
27 | MANIFEST
28 |
29 | .vscode/*
30 |
31 | # PyInstaller
32 | # Usually these files are written by a python script from a template
33 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
34 | *.manifest
35 | *.spec
36 |
37 | # Installer logs
38 | pip-log.txt
39 | pip-delete-this-directory.txt
40 |
41 | # Unit test / coverage reports
42 | htmlcov/
43 | .tox/
44 | .nox/
45 | .coverage
46 | .coverage.*
47 | .cache
48 | nosetests.xml
49 | coverage.xml
50 | *.cover
51 | *.py,cover
52 | .hypothesis/
53 | .pytest_cache/
54 | cover/
55 |
56 | # Translations
57 | *.mo
58 | *.pot
59 |
60 | # Django stuff:
61 | *.log
62 | local_settings.py
63 | db.sqlite3
64 | db.sqlite3-journal
65 |
66 | # Flask stuff:
67 | instance/
68 | .webassets-cache
69 |
70 | # Scrapy stuff:
71 | .scrapy
72 |
73 | # Sphinx documentation
74 | docs/_build/
75 |
76 | # PyBuilder
77 | .pybuilder/
78 | target/
79 |
80 | # Jupyter Notebook
81 | .ipynb_checkpoints
82 |
83 | # IPython
84 | profile_default/
85 | ipython_config.py
86 |
87 | # pyenv
88 | # For a library or package, you might want to ignore these files since the code is
89 | # intended to run in multiple environments; otherwise, check them in:
90 | # .python-version
91 |
92 | # pipenv
93 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
94 | # However, in case of collaboration, if having platform-specific dependencies or dependencies
95 | # having no cross-platform support, pipenv may install dependencies that don't work, or not
96 | # install all needed dependencies.
97 | #Pipfile.lock
98 |
99 | # poetry
100 | # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
101 | # This is especially recommended for binary packages to ensure reproducibility, and is more
102 | # commonly ignored for libraries.
103 | # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
104 | #poetry.lock
105 |
106 | # pdm
107 | # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
108 | #pdm.lock
109 | # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
110 | # in version control.
111 | # https://pdm.fming.dev/#use-with-ide
112 | .pdm.toml
113 |
114 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
115 | __pypackages__/
116 |
117 | # Celery stuff
118 | celerybeat-schedule
119 | celerybeat.pid
120 |
121 | # SageMath parsed files
122 | *.sage.py
123 |
124 | # Environments
125 | .env
126 | .venv
127 | env/
128 | venv/
129 | ENV/
130 | env.bak/
131 | venv.bak/
132 |
133 | # Spyder project settings
134 | .spyderproject
135 | .spyproject
136 |
137 | # Rope project settings
138 | .ropeproject
139 |
140 | # mkdocs documentation
141 | /site
142 |
143 | # mypy
144 | .mypy_cache/
145 | .dmypy.json
146 | dmypy.json
147 |
148 | # Pyre type checker
149 | .pyre/
150 |
151 | # pytype static type analyzer
152 | .pytype/
153 |
154 | # Cython debug symbols
155 | cython_debug/
156 |
157 | # PyCharm
158 | # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
159 | # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
160 | # and can be added to the global gitignore or merged into this file. For a more nuclear
161 | # option (not recommended) you can uncomment the following to ignore the entire idea folder.
162 | #.idea/
163 |
164 | # Flask
165 | flask_cache/
166 |
167 | # others
168 | test.py
169 | log.txt
170 | .idea/
171 | app.build/
172 | app.dist/
173 | release/
174 | ann.md
175 | .cache/
--------------------------------------------------------------------------------
/cover.py:
--------------------------------------------------------------------------------
1 | import logging
2 | import os
3 | import re
4 | import threading
5 |
6 | import requests
7 |
8 | from search import get_album_info, get_artist_profile
9 |
10 | logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
11 | logger = logging.getLogger('')
12 |
13 | music_dir = "/music"
14 |
15 | ALBUM_REGEX_PATTERN = os.getenv('ALBUM_REGEX_PATTERN', "(.*)")
16 | # ALBUM_REGEX_PATTERN = os.getenv('ALBUM_REGEX_PATTERN', "\d+--(.+)")
17 |
18 | COVER_AUTO_DOWNLOAD = os.getenv("COVER_AUTO_DOWNLOAD", "false")
19 | COVER_AUTO_DOWNLOAD = True if COVER_AUTO_DOWNLOAD.lower() == "true" else False
20 |
21 | def find_album_directory(artist_dir, album_name):
22 | """
23 | 在 artist_dir 目录下查找包含 album_name 的专辑目录
24 | """
25 | for dir_name in os.listdir(artist_dir):
26 | if album_name in dir_name:
27 | return os.path.join(artist_dir, dir_name)
28 | return None
29 |
30 |
31 | def download_image_async(image_url, artist_name, album_name=None):
32 | if not COVER_AUTO_DOWNLOAD:
33 | return
34 | download_task = threading.Thread(target=download_image, args=(image_url, artist_name, album_name))
35 | download_task.start()
36 |
37 |
38 |
39 | def download_image(image_url, artist_name, album_name=None):
40 |
41 | # 创建艺术家文件夹路径
42 | artist_dir = os.path.join(music_dir, artist_name)
43 |
44 | # 确保艺术家文件夹存在
45 | if not os.path.exists(artist_dir):
46 | logger.warning(f"不存在艺术家 {artist_name}, 无法保存封面图片")
47 | return
48 | # 如果是专辑封面,尝试找到匹配的专辑文件夹
49 | if album_name:
50 | album_dir = find_album_directory(artist_dir, album_name)
51 | if not album_dir:
52 | logger.warning(f"不存在专辑 {artist_name}/{album_name}, 无法保存封面图片")
53 | return
54 |
55 | image_path = os.path.join(album_dir, 'cover.jpg')
56 | else:
57 | image_path = os.path.join(artist_dir, 'artist.jpg')
58 |
59 | if os.path.exists(image_path):
60 | return
61 |
62 | do_download(image_url, image_path)
63 |
64 |
65 |
66 |
67 | def do_download(image_url, image_path):
68 | try:
69 | response = requests.get(image_url)
70 | response.raise_for_status()
71 |
72 | # 将图片保存到指定路径
73 | with open(image_path, 'wb') as f:
74 | f.write(response.content)
75 | logger.info(f"下载封面 {image_path}")
76 | except Exception as e:
77 | logger.error(f"下载封面失败: {e}")
78 | pass
79 |
80 |
81 | def get_artist_pic_url(artist):
82 | if profile := get_artist_profile(artist):
83 | return profile['artist']['img1v1Url']
84 | return None
85 |
86 |
87 | def get_album_pic_url(artist, album):
88 | if info := get_album_info(artist, album):
89 | return info['picUrl']
90 | return None
91 |
92 |
93 | def download_covers_auto():
94 | if not COVER_AUTO_DOWNLOAD:
95 | logger.info("未开启自动下载专辑和艺术家封面")
96 | return
97 | for artist in os.listdir(music_dir):
98 | artist_dir = os.path.join(music_dir, artist)
99 | if os.path.isdir(artist_dir):
100 | artist_cover_path = os.path.join(artist_dir, "artist.jpg")
101 | # logger.info(artist_dir)
102 | if not os.path.exists(artist_cover_path):
103 | if url := get_artist_pic_url(artist):
104 | do_download(url, artist_cover_path)
105 |
106 | for album in os.listdir(artist_dir):
107 | album_dir = os.path.join(artist_dir, album)
108 | # logger.info(album_dir)
109 | if os.path.isdir(album_dir):
110 | cover_path = os.path.join(album_dir, "cover.jpg")
111 | if not os.path.exists(cover_path):
112 | real_album_name = album
113 | if match := re.search(ALBUM_REGEX_PATTERN, album):
114 | real_album_name = match.group(1)
115 |
116 | if url := get_album_pic_url(artist, real_album_name):
117 | do_download(url, cover_path)
118 | else:
119 | logger.warning(f"找不到封面, 无法下载 {cover_path}")
120 | logger.info("done download_covers_auto")
121 |
--------------------------------------------------------------------------------
/search.py:
--------------------------------------------------------------------------------
1 | import logging
2 |
3 | import requests
4 | import urllib
5 |
6 | from textcompare import association
7 | from ttscn import t2s
8 |
9 |
10 | # logging.basicConfig(level=logging.INFO)
11 | # logger = logging.getLogger(__name__)
12 |
13 | headers = {
14 | 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36 Edg/129.0.0.0',
15 | 'origin': 'https://music.163.com',
16 | 'referer': 'https://music.163.com',
17 | }
18 |
19 | COMMON_SEARCH_URL_WANGYI = 'https://music.163.com/api/search/get/web?csrf_token=hlpretag=&hlposttag=&s={}&type={}&offset={}&total=true&limit={}'
20 | ARTIST_SEARCH_URL = 'http://music.163.com/api/v1/artist/{}'
21 | ALBUMS_SEARCH_URL = "http://music.163.com/api/artist/albums/{}?offset=0&total=true&limit=300"
22 | ALBUM_INFO_URL = "http://music.163.com/api/album/{}?ext=true"
23 |
24 |
25 | def listify(obj):
26 | if isinstance(obj, list):
27 | return obj
28 | else:
29 | return [obj]
30 |
31 |
32 | def search_artist_blur(artist_blur, limit=1):
33 | """ 由于没有选择交互的过程, 因此 artist_blur 如果输入的不准确, 可能会查询到错误的歌手 """
34 | # logging.info('开始搜索: ' + artist_blur)
35 |
36 | num = 0
37 | if not artist_blur:
38 | logging.info('Missing artist. Skipping match')
39 | return None
40 |
41 | url = COMMON_SEARCH_URL_WANGYI.format(
42 | urllib.parse.quote(artist_blur.lower()), 100, 0, limit)
43 | artists = []
44 | try:
45 | response = requests.get(url=url, headers=headers).json()
46 | artist_results = response['result']
47 | num = int(artist_results['artistCount'])
48 | lim = min(limit, num)
49 | # logging.info('搜索到的歌手数量:' + str(lim))
50 | for i in range(lim):
51 | try:
52 | artists = listify(artist_results['artists'])
53 | except:
54 | logging.error('Error retrieving artist search results.')
55 | except:
56 | logging.error('Error retrieving artist search results.')
57 | if len(artists) > 0:
58 | return artists[0]
59 | return None
60 |
61 |
62 | def search_artist(artist_id):
63 | if not artist_id:
64 | # logging.info('Missing artist. Skipping match')
65 | return None
66 | url = ARTIST_SEARCH_URL.format(artist_id)
67 | try:
68 | resp = requests.get(url=url, headers=headers).json()
69 | return resp
70 | except:
71 | return None
72 |
73 |
74 | def search_albums(artist_id):
75 | url = ALBUMS_SEARCH_URL.format(artist_id)
76 | resp = requests.get(url=url, headers=headers)
77 | if resp.status_code == 200 and resp.json()['code'] == 200:
78 | return resp.json()['hotAlbums']
79 | return None
80 |
81 |
82 | def filter_and_get_album_id(album_list, album):
83 | most_similar = None
84 | highest_similarity = 0
85 |
86 | for candidate_album in album_list:
87 | if album == candidate_album['name']:
88 | return candidate_album['id']
89 | similarity = association(album, candidate_album['name'])
90 | if similarity > highest_similarity:
91 | highest_similarity = similarity
92 | most_similar = candidate_album
93 | return most_similar['id'] if most_similar is not None else None
94 |
95 |
96 | def get_album_info_by_id(album_id):
97 | url = ALBUM_INFO_URL.format(album_id)
98 | resp = requests.get(url, headers=headers)
99 | if resp.status_code == 200 and resp.json()['code'] == 200:
100 | return resp.json()['album']
101 | return None
102 |
103 |
104 | def get_album_info(artist, album):
105 | artist = t2s(artist)
106 | album = t2s(album)
107 | # 1. 根据 artist, 获取 artist_id
108 | if blur_result := search_artist_blur(artist_blur=artist):
109 | artist_id = blur_result['id']
110 | # 2. 根据 artist_id 查询所有专辑
111 | if album_list := search_albums(artist_id):
112 | # 3. 根据 album, 过滤, 并获取到 album_id
113 | if album_id := filter_and_get_album_id(album_list, album):
114 | # 4. 根据 album_id, 查询 album_info
115 | return get_album_info_by_id(album_id)
116 | return None
117 |
118 |
119 | def get_artist_profile(artist):
120 | artist = t2s(artist)
121 | if artist is None or artist.strip() == '':
122 | return None
123 | if blur_result := search_artist_blur(artist_blur=artist):
124 | if profile := search_artist(blur_result['id']):
125 | return profile
126 | return None
--------------------------------------------------------------------------------
/proxy.py:
--------------------------------------------------------------------------------
1 | import re
2 | import requests
3 | import traceback
4 | from flask_caching import Cache
5 | from functools import cache
6 | from urllib.parse import unquote
7 | from flask import Flask, abort, request, jsonify, redirect
8 | from cover import download_image_async
9 | from search import get_album_info, get_artist_profile # type: ignore
10 |
11 | app = Flask(__name__)
12 |
13 |
14 | # 缓存
15 | cache_dir = '/.cache'
16 | # try:
17 | # shutil.rmtree(cache_dir)
18 | # except FileNotFoundError:
19 | # pass
20 |
21 | cache = Cache(app, config={
22 | 'CACHE_TYPE': 'filesystem',
23 | 'CACHE_DIR': cache_dir
24 | })
25 |
26 | # 缓存键,解决缓存未忽略参数的情况 COPY FROM LRCAPI
27 |
28 |
29 | def make_cache_key(*args, **kwargs) -> str:
30 | path: str = request.path
31 | args: str = str(hash(frozenset(request.args.items())))
32 | return path + args
33 |
34 |
35 | @app.route('/spotify/search/', methods=['GET'])
36 | @cache.cached(timeout=86400, key_prefix=make_cache_key)
37 | def proxy_spotfiy():
38 | search_type = request.args.get('type')
39 | spotify_origin_url = f"https://api.spotify.com/v1/search?{request.query_string.decode('utf-8')}"
40 |
41 | if search_type == "artist":
42 | artist_name = request.args.get('q')
43 | artist_name_1 = None
44 |
45 | if any(substring in artist_name for substring in [' and ', "&"]):
46 | sp = re.split(r" and |&", artist_name)
47 | artist_name_1 = sp[0].strip()
48 |
49 | try:
50 | artist_profile = get_artist_profile(artist_name)
51 | if not artist_profile and artist_name_1 is not None:
52 | artist_profile = get_artist_profile(artist_name_1)
53 |
54 | if artist_profile:
55 | artist = artist_profile['artist']
56 | app.logger.debug(f"查询到 {artist['name']}")
57 | else:
58 | app.logger.info(f"400 GET /spotify/search/?{unquote(request.query_string.decode('utf-8'))}")
59 | return jsonify({"code": 400, "message": f"无法查询到名称为[{artist_name}]的艺术家"})
60 |
61 | items = []
62 | images = []
63 | url = artist['img1v1Url']
64 | for i in range(3):
65 | # height 和 width 在 navidrome 中, 只用作排序. 所以大具体值无所谓
66 | image = {"height": 160 * (i + 1), "width": 160 * (i + 1), "url": url}
67 | images.append(image)
68 | # items.append({"name":artist['name'], "popularity": 100, "images": images})
69 | items.append({"name": artist_name, "popularity": 100, "images": images})
70 | app.logger.info(f"200 GET /spotify/search?{unquote(request.query_string.decode('utf-8'))}")
71 |
72 | # 查询成功的话, 下载封面放在 music_dir 中
73 | download_image_async(url, artist_name)
74 |
75 | return jsonify({"artists": {"items": items}})
76 | except:
77 | app.logger.error("Traceback: %s", traceback.format_exc())
78 | app.logger.warn(f"400 GET /spotify/search/?{unquote(request.query_string.decode('utf-8'))}")
79 | # 将你接口的返回内容直接返回给调用者
80 | abort(400, "暂时无法查询, 请稍后再试")
81 | else:
82 | # 对其他请求直接重定向到原接口
83 | app.logger.info(f"302 GET /spotify/search/?{unquote(request.query_string.decode('utf-8'))}")
84 | return redirect(spotify_origin_url)
85 |
86 |
87 | @app.route('/lastfm/', methods=['GET', 'POST'])
88 | @cache.cached(timeout=86400, key_prefix=make_cache_key)
89 | def proxy_lastfm():
90 | lastfm_api_url = f"https://ws.audioscrobbler.com/2.0/?{request.query_string.decode('utf-8')}"
91 |
92 | if request.method == "POST":
93 | resp = requests.post(lastfm_api_url, json=None, headers=request.headers)
94 | app.logger.info(f"{resp.status_code} POST /lastfm/?{unquote(request.query_string.decode('utf-8'))}")
95 | return jsonify(resp.json()), resp.status_code
96 |
97 | method = request.args.get('method')
98 | if method.lower() == "artist.getinfo":
99 | lastfm_resp = requests.get(lastfm_api_url, headers=request.headers).json()
100 | artist_name = request.args.get('artist')
101 | if 'error' in lastfm_resp:
102 | app.logger.info(f"400 GET /lastfm/?{unquote(request.query_string.decode('utf-8'))}")
103 | abort(400, {"code": 400, "message": f"无法在lastfm 中查询到 {artist_name}"})
104 |
105 | artist_name_1 = None
106 | if any(substring in artist_name for substring in [' and ', "&"]):
107 | # 尝试拆分名字.
108 | sp = re.split(r" and |&", artist_name)
109 | artist_name_1 = sp[0]
110 | try:
111 | artist_profile = get_artist_profile(artist_name)
112 | if not artist_profile and artist_name_1 is not None:
113 | artist_profile = get_artist_profile(artist_name_1)
114 | if artist_profile:
115 | artist = artist_profile['artist']
116 | lastfm_resp['artist']['bio']['content'] = artist['briefDesc']
117 | lastfm_resp['artist']['bio']['summary'] = artist['briefDesc']
118 | for image in lastfm_resp['artist']['image']:
119 | if image['size'] in ['mega', 'extralarge', 'large']:
120 | image['#text'] = artist['picUrl']
121 | image['#text'] = artist['img1v1Url']
122 | app.logger.info(f"200 GET /lastfm/?{unquote(request.query_string.decode('utf-8'))}")
123 | return jsonify(lastfm_resp)
124 | except:
125 | pass
126 | app.logger.info(f"400 GET /lastfm/?{unquote(request.query_string.decode('utf-8'))}")
127 | abort(400, {"code": 400, "message": f"无法根据 {artist_name} 查询到艺术家"})
128 | elif method.lower() == "album.getinfo":
129 | lastfm_resp = requests.get(lastfm_api_url, headers=request.headers).json()
130 | artist_name = request.args.get('artist')
131 | if 'error' in lastfm_resp:
132 | app.logger.info(f"400 GET /lastfm/?{unquote(request.query_string.decode('utf-8'))}")
133 | abort(400, {"code": 400, "message": f"无法在lastfm 中查询到 {artist_name}"})
134 |
135 | # 从请求参数中获取专辑和艺术家信息
136 | artist_name = request.args.get('artist')
137 | album_name = request.args.get('album')
138 | mbid = request.args.get('mbid', "")
139 |
140 | # 查询网易云
141 | if album_info := get_album_info(artist_name, album_name):
142 | album_result = lastfm_resp["album"]
143 | album_result["mbid"] = mbid
144 | album_result["wiki"] = {"summary": album_info['description']}
145 | for image in album_result['image']:
146 | if image['size'] in ['mega', 'extralarge', 'large']:
147 | image['#text'] = album_info['picUrl']
148 | image['#text'] = album_info['blurPicUrl']
149 | app.logger.info(f"200 GET /lastfm/?{unquote(request.query_string.decode('utf-8'))}")
150 | download_image_async(album_info['picUrl'], artist_name, album_name)
151 | return jsonify(lastfm_resp)
152 | abort(400, {"code": 400, "message": f"无法根据 {artist_name} + {album_name} 查询到专辑"})
153 | else:
154 | # 对其他请求直接重定向到原接口
155 | app.logger.info(f"302 GET /lastfm/?{unquote(request.query_string.decode('utf-8'))}")
156 | return redirect(lastfm_api_url)
157 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | GNU GENERAL PUBLIC LICENSE
2 | Version 3, 29 June 2007
3 |
4 | Copyright (C) 2007 Free Software Foundation, Inc.
5 | Everyone is permitted to copy and distribute verbatim copies
6 | of this license document, but changing it is not allowed.
7 |
8 | Preamble
9 |
10 | The GNU General Public License is a free, copyleft license for
11 | software and other kinds of works.
12 |
13 | The licenses for most software and other practical works are designed
14 | to take away your freedom to share and change the works. By contrast,
15 | the GNU General Public License is intended to guarantee your freedom to
16 | share and change all versions of a program--to make sure it remains free
17 | software for all its users. We, the Free Software Foundation, use the
18 | GNU General Public License for most of our software; it applies also to
19 | any other work released this way by its authors. You can apply it to
20 | your programs, too.
21 |
22 | When we speak of free software, we are referring to freedom, not
23 | price. Our General Public Licenses are designed to make sure that you
24 | have the freedom to distribute copies of free software (and charge for
25 | them if you wish), that you receive source code or can get it if you
26 | want it, that you can change the software or use pieces of it in new
27 | free programs, and that you know you can do these things.
28 |
29 | To protect your rights, we need to prevent others from denying you
30 | these rights or asking you to surrender the rights. Therefore, you have
31 | certain responsibilities if you distribute copies of the software, or if
32 | you modify it: responsibilities to respect the freedom of others.
33 |
34 | For example, if you distribute copies of such a program, whether
35 | gratis or for a fee, you must pass on to the recipients the same
36 | freedoms that you received. You must make sure that they, too, receive
37 | or can get the source code. And you must show them these terms so they
38 | know their rights.
39 |
40 | Developers that use the GNU GPL protect your rights with two steps:
41 | (1) assert copyright on the software, and (2) offer you this License
42 | giving you legal permission to copy, distribute and/or modify it.
43 |
44 | For the developers' and authors' protection, the GPL clearly explains
45 | that there is no warranty for this free software. For both users' and
46 | authors' sake, the GPL requires that modified versions be marked as
47 | changed, so that their problems will not be attributed erroneously to
48 | authors of previous versions.
49 |
50 | Some devices are designed to deny users access to install or run
51 | modified versions of the software inside them, although the manufacturer
52 | can do so. This is fundamentally incompatible with the aim of
53 | protecting users' freedom to change the software. The systematic
54 | pattern of such abuse occurs in the area of products for individuals to
55 | use, which is precisely where it is most unacceptable. Therefore, we
56 | have designed this version of the GPL to prohibit the practice for those
57 | products. If such problems arise substantially in other domains, we
58 | stand ready to extend this provision to those domains in future versions
59 | of the GPL, as needed to protect the freedom of users.
60 |
61 | Finally, every program is threatened constantly by software patents.
62 | States should not allow patents to restrict development and use of
63 | software on general-purpose computers, but in those that do, we wish to
64 | avoid the special danger that patents applied to a free program could
65 | make it effectively proprietary. To prevent this, the GPL assures that
66 | patents cannot be used to render the program non-free.
67 |
68 | The precise terms and conditions for copying, distribution and
69 | modification follow.
70 |
71 | TERMS AND CONDITIONS
72 |
73 | 0. Definitions.
74 |
75 | "This License" refers to version 3 of the GNU General Public License.
76 |
77 | "Copyright" also means copyright-like laws that apply to other kinds of
78 | works, such as semiconductor masks.
79 |
80 | "The Program" refers to any copyrightable work licensed under this
81 | License. Each licensee is addressed as "you". "Licensees" and
82 | "recipients" may be individuals or organizations.
83 |
84 | To "modify" a work means to copy from or adapt all or part of the work
85 | in a fashion requiring copyright permission, other than the making of an
86 | exact copy. The resulting work is called a "modified version" of the
87 | earlier work or a work "based on" the earlier work.
88 |
89 | A "covered work" means either the unmodified Program or a work based
90 | on the Program.
91 |
92 | To "propagate" a work means to do anything with it that, without
93 | permission, would make you directly or secondarily liable for
94 | infringement under applicable copyright law, except executing it on a
95 | computer or modifying a private copy. Propagation includes copying,
96 | distribution (with or without modification), making available to the
97 | public, and in some countries other activities as well.
98 |
99 | To "convey" a work means any kind of propagation that enables other
100 | parties to make or receive copies. Mere interaction with a user through
101 | a computer network, with no transfer of a copy, is not conveying.
102 |
103 | An interactive user interface displays "Appropriate Legal Notices"
104 | to the extent that it includes a convenient and prominently visible
105 | feature that (1) displays an appropriate copyright notice, and (2)
106 | tells the user that there is no warranty for the work (except to the
107 | extent that warranties are provided), that licensees may convey the
108 | work under this License, and how to view a copy of this License. If
109 | the interface presents a list of user commands or options, such as a
110 | menu, a prominent item in the list meets this criterion.
111 |
112 | 1. Source Code.
113 |
114 | The "source code" for a work means the preferred form of the work
115 | for making modifications to it. "Object code" means any non-source
116 | form of a work.
117 |
118 | A "Standard Interface" means an interface that either is an official
119 | standard defined by a recognized standards body, or, in the case of
120 | interfaces specified for a particular programming language, one that
121 | is widely used among developers working in that language.
122 |
123 | The "System Libraries" of an executable work include anything, other
124 | than the work as a whole, that (a) is included in the normal form of
125 | packaging a Major Component, but which is not part of that Major
126 | Component, and (b) serves only to enable use of the work with that
127 | Major Component, or to implement a Standard Interface for which an
128 | implementation is available to the public in source code form. A
129 | "Major Component", in this context, means a major essential component
130 | (kernel, window system, and so on) of the specific operating system
131 | (if any) on which the executable work runs, or a compiler used to
132 | produce the work, or an object code interpreter used to run it.
133 |
134 | The "Corresponding Source" for a work in object code form means all
135 | the source code needed to generate, install, and (for an executable
136 | work) run the object code and to modify the work, including scripts to
137 | control those activities. However, it does not include the work's
138 | System Libraries, or general-purpose tools or generally available free
139 | programs which are used unmodified in performing those activities but
140 | which are not part of the work. For example, Corresponding Source
141 | includes interface definition files associated with source files for
142 | the work, and the source code for shared libraries and dynamically
143 | linked subprograms that the work is specifically designed to require,
144 | such as by intimate data communication or control flow between those
145 | subprograms and other parts of the work.
146 |
147 | The Corresponding Source need not include anything that users
148 | can regenerate automatically from other parts of the Corresponding
149 | Source.
150 |
151 | The Corresponding Source for a work in source code form is that
152 | same work.
153 |
154 | 2. Basic Permissions.
155 |
156 | All rights granted under this License are granted for the term of
157 | copyright on the Program, and are irrevocable provided the stated
158 | conditions are met. This License explicitly affirms your unlimited
159 | permission to run the unmodified Program. The output from running a
160 | covered work is covered by this License only if the output, given its
161 | content, constitutes a covered work. This License acknowledges your
162 | rights of fair use or other equivalent, as provided by copyright law.
163 |
164 | You may make, run and propagate covered works that you do not
165 | convey, without conditions so long as your license otherwise remains
166 | in force. You may convey covered works to others for the sole purpose
167 | of having them make modifications exclusively for you, or provide you
168 | with facilities for running those works, provided that you comply with
169 | the terms of this License in conveying all material for which you do
170 | not control copyright. Those thus making or running the covered works
171 | for you must do so exclusively on your behalf, under your direction
172 | and control, on terms that prohibit them from making any copies of
173 | your copyrighted material outside their relationship with you.
174 |
175 | Conveying under any other circumstances is permitted solely under
176 | the conditions stated below. Sublicensing is not allowed; section 10
177 | makes it unnecessary.
178 |
179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
180 |
181 | No covered work shall be deemed part of an effective technological
182 | measure under any applicable law fulfilling obligations under article
183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or
184 | similar laws prohibiting or restricting circumvention of such
185 | measures.
186 |
187 | When you convey a covered work, you waive any legal power to forbid
188 | circumvention of technological measures to the extent such circumvention
189 | is effected by exercising rights under this License with respect to
190 | the covered work, and you disclaim any intention to limit operation or
191 | modification of the work as a means of enforcing, against the work's
192 | users, your or third parties' legal rights to forbid circumvention of
193 | technological measures.
194 |
195 | 4. Conveying Verbatim Copies.
196 |
197 | You may convey verbatim copies of the Program's source code as you
198 | receive it, in any medium, provided that you conspicuously and
199 | appropriately publish on each copy an appropriate copyright notice;
200 | keep intact all notices stating that this License and any
201 | non-permissive terms added in accord with section 7 apply to the code;
202 | keep intact all notices of the absence of any warranty; and give all
203 | recipients a copy of this License along with the Program.
204 |
205 | You may charge any price or no price for each copy that you convey,
206 | and you may offer support or warranty protection for a fee.
207 |
208 | 5. Conveying Modified Source Versions.
209 |
210 | You may convey a work based on the Program, or the modifications to
211 | produce it from the Program, in the form of source code under the
212 | terms of section 4, provided that you also meet all of these conditions:
213 |
214 | a) The work must carry prominent notices stating that you modified
215 | it, and giving a relevant date.
216 |
217 | b) The work must carry prominent notices stating that it is
218 | released under this License and any conditions added under section
219 | 7. This requirement modifies the requirement in section 4 to
220 | "keep intact all notices".
221 |
222 | c) You must license the entire work, as a whole, under this
223 | License to anyone who comes into possession of a copy. This
224 | License will therefore apply, along with any applicable section 7
225 | additional terms, to the whole of the work, and all its parts,
226 | regardless of how they are packaged. This License gives no
227 | permission to license the work in any other way, but it does not
228 | invalidate such permission if you have separately received it.
229 |
230 | d) If the work has interactive user interfaces, each must display
231 | Appropriate Legal Notices; however, if the Program has interactive
232 | interfaces that do not display Appropriate Legal Notices, your
233 | work need not make them do so.
234 |
235 | A compilation of a covered work with other separate and independent
236 | works, which are not by their nature extensions of the covered work,
237 | and which are not combined with it such as to form a larger program,
238 | in or on a volume of a storage or distribution medium, is called an
239 | "aggregate" if the compilation and its resulting copyright are not
240 | used to limit the access or legal rights of the compilation's users
241 | beyond what the individual works permit. Inclusion of a covered work
242 | in an aggregate does not cause this License to apply to the other
243 | parts of the aggregate.
244 |
245 | 6. Conveying Non-Source Forms.
246 |
247 | You may convey a covered work in object code form under the terms
248 | of sections 4 and 5, provided that you also convey the
249 | machine-readable Corresponding Source under the terms of this License,
250 | in one of these ways:
251 |
252 | a) Convey the object code in, or embodied in, a physical product
253 | (including a physical distribution medium), accompanied by the
254 | Corresponding Source fixed on a durable physical medium
255 | customarily used for software interchange.
256 |
257 | b) Convey the object code in, or embodied in, a physical product
258 | (including a physical distribution medium), accompanied by a
259 | written offer, valid for at least three years and valid for as
260 | long as you offer spare parts or customer support for that product
261 | model, to give anyone who possesses the object code either (1) a
262 | copy of the Corresponding Source for all the software in the
263 | product that is covered by this License, on a durable physical
264 | medium customarily used for software interchange, for a price no
265 | more than your reasonable cost of physically performing this
266 | conveying of source, or (2) access to copy the
267 | Corresponding Source from a network server at no charge.
268 |
269 | c) Convey individual copies of the object code with a copy of the
270 | written offer to provide the Corresponding Source. This
271 | alternative is allowed only occasionally and noncommercially, and
272 | only if you received the object code with such an offer, in accord
273 | with subsection 6b.
274 |
275 | d) Convey the object code by offering access from a designated
276 | place (gratis or for a charge), and offer equivalent access to the
277 | Corresponding Source in the same way through the same place at no
278 | further charge. You need not require recipients to copy the
279 | Corresponding Source along with the object code. If the place to
280 | copy the object code is a network server, the Corresponding Source
281 | may be on a different server (operated by you or a third party)
282 | that supports equivalent copying facilities, provided you maintain
283 | clear directions next to the object code saying where to find the
284 | Corresponding Source. Regardless of what server hosts the
285 | Corresponding Source, you remain obligated to ensure that it is
286 | available for as long as needed to satisfy these requirements.
287 |
288 | e) Convey the object code using peer-to-peer transmission, provided
289 | you inform other peers where the object code and Corresponding
290 | Source of the work are being offered to the general public at no
291 | charge under subsection 6d.
292 |
293 | A separable portion of the object code, whose source code is excluded
294 | from the Corresponding Source as a System Library, need not be
295 | included in conveying the object code work.
296 |
297 | A "User Product" is either (1) a "consumer product", which means any
298 | tangible personal property which is normally used for personal, family,
299 | or household purposes, or (2) anything designed or sold for incorporation
300 | into a dwelling. In determining whether a product is a consumer product,
301 | doubtful cases shall be resolved in favor of coverage. For a particular
302 | product received by a particular user, "normally used" refers to a
303 | typical or common use of that class of product, regardless of the status
304 | of the particular user or of the way in which the particular user
305 | actually uses, or expects or is expected to use, the product. A product
306 | is a consumer product regardless of whether the product has substantial
307 | commercial, industrial or non-consumer uses, unless such uses represent
308 | the only significant mode of use of the product.
309 |
310 | "Installation Information" for a User Product means any methods,
311 | procedures, authorization keys, or other information required to install
312 | and execute modified versions of a covered work in that User Product from
313 | a modified version of its Corresponding Source. The information must
314 | suffice to ensure that the continued functioning of the modified object
315 | code is in no case prevented or interfered with solely because
316 | modification has been made.
317 |
318 | If you convey an object code work under this section in, or with, or
319 | specifically for use in, a User Product, and the conveying occurs as
320 | part of a transaction in which the right of possession and use of the
321 | User Product is transferred to the recipient in perpetuity or for a
322 | fixed term (regardless of how the transaction is characterized), the
323 | Corresponding Source conveyed under this section must be accompanied
324 | by the Installation Information. But this requirement does not apply
325 | if neither you nor any third party retains the ability to install
326 | modified object code on the User Product (for example, the work has
327 | been installed in ROM).
328 |
329 | The requirement to provide Installation Information does not include a
330 | requirement to continue to provide support service, warranty, or updates
331 | for a work that has been modified or installed by the recipient, or for
332 | the User Product in which it has been modified or installed. Access to a
333 | network may be denied when the modification itself materially and
334 | adversely affects the operation of the network or violates the rules and
335 | protocols for communication across the network.
336 |
337 | Corresponding Source conveyed, and Installation Information provided,
338 | in accord with this section must be in a format that is publicly
339 | documented (and with an implementation available to the public in
340 | source code form), and must require no special password or key for
341 | unpacking, reading or copying.
342 |
343 | 7. Additional Terms.
344 |
345 | "Additional permissions" are terms that supplement the terms of this
346 | License by making exceptions from one or more of its conditions.
347 | Additional permissions that are applicable to the entire Program shall
348 | be treated as though they were included in this License, to the extent
349 | that they are valid under applicable law. If additional permissions
350 | apply only to part of the Program, that part may be used separately
351 | under those permissions, but the entire Program remains governed by
352 | this License without regard to the additional permissions.
353 |
354 | When you convey a copy of a covered work, you may at your option
355 | remove any additional permissions from that copy, or from any part of
356 | it. (Additional permissions may be written to require their own
357 | removal in certain cases when you modify the work.) You may place
358 | additional permissions on material, added by you to a covered work,
359 | for which you have or can give appropriate copyright permission.
360 |
361 | Notwithstanding any other provision of this License, for material you
362 | add to a covered work, you may (if authorized by the copyright holders of
363 | that material) supplement the terms of this License with terms:
364 |
365 | a) Disclaiming warranty or limiting liability differently from the
366 | terms of sections 15 and 16 of this License; or
367 |
368 | b) Requiring preservation of specified reasonable legal notices or
369 | author attributions in that material or in the Appropriate Legal
370 | Notices displayed by works containing it; or
371 |
372 | c) Prohibiting misrepresentation of the origin of that material, or
373 | requiring that modified versions of such material be marked in
374 | reasonable ways as different from the original version; or
375 |
376 | d) Limiting the use for publicity purposes of names of licensors or
377 | authors of the material; or
378 |
379 | e) Declining to grant rights under trademark law for use of some
380 | trade names, trademarks, or service marks; or
381 |
382 | f) Requiring indemnification of licensors and authors of that
383 | material by anyone who conveys the material (or modified versions of
384 | it) with contractual assumptions of liability to the recipient, for
385 | any liability that these contractual assumptions directly impose on
386 | those licensors and authors.
387 |
388 | All other non-permissive additional terms are considered "further
389 | restrictions" within the meaning of section 10. If the Program as you
390 | received it, or any part of it, contains a notice stating that it is
391 | governed by this License along with a term that is a further
392 | restriction, you may remove that term. If a license document contains
393 | a further restriction but permits relicensing or conveying under this
394 | License, you may add to a covered work material governed by the terms
395 | of that license document, provided that the further restriction does
396 | not survive such relicensing or conveying.
397 |
398 | If you add terms to a covered work in accord with this section, you
399 | must place, in the relevant source files, a statement of the
400 | additional terms that apply to those files, or a notice indicating
401 | where to find the applicable terms.
402 |
403 | Additional terms, permissive or non-permissive, may be stated in the
404 | form of a separately written license, or stated as exceptions;
405 | the above requirements apply either way.
406 |
407 | 8. Termination.
408 |
409 | You may not propagate or modify a covered work except as expressly
410 | provided under this License. Any attempt otherwise to propagate or
411 | modify it is void, and will automatically terminate your rights under
412 | this License (including any patent licenses granted under the third
413 | paragraph of section 11).
414 |
415 | However, if you cease all violation of this License, then your
416 | license from a particular copyright holder is reinstated (a)
417 | provisionally, unless and until the copyright holder explicitly and
418 | finally terminates your license, and (b) permanently, if the copyright
419 | holder fails to notify you of the violation by some reasonable means
420 | prior to 60 days after the cessation.
421 |
422 | Moreover, your license from a particular copyright holder is
423 | reinstated permanently if the copyright holder notifies you of the
424 | violation by some reasonable means, this is the first time you have
425 | received notice of violation of this License (for any work) from that
426 | copyright holder, and you cure the violation prior to 30 days after
427 | your receipt of the notice.
428 |
429 | Termination of your rights under this section does not terminate the
430 | licenses of parties who have received copies or rights from you under
431 | this License. If your rights have been terminated and not permanently
432 | reinstated, you do not qualify to receive new licenses for the same
433 | material under section 10.
434 |
435 | 9. Acceptance Not Required for Having Copies.
436 |
437 | You are not required to accept this License in order to receive or
438 | run a copy of the Program. Ancillary propagation of a covered work
439 | occurring solely as a consequence of using peer-to-peer transmission
440 | to receive a copy likewise does not require acceptance. However,
441 | nothing other than this License grants you permission to propagate or
442 | modify any covered work. These actions infringe copyright if you do
443 | not accept this License. Therefore, by modifying or propagating a
444 | covered work, you indicate your acceptance of this License to do so.
445 |
446 | 10. Automatic Licensing of Downstream Recipients.
447 |
448 | Each time you convey a covered work, the recipient automatically
449 | receives a license from the original licensors, to run, modify and
450 | propagate that work, subject to this License. You are not responsible
451 | for enforcing compliance by third parties with this License.
452 |
453 | An "entity transaction" is a transaction transferring control of an
454 | organization, or substantially all assets of one, or subdividing an
455 | organization, or merging organizations. If propagation of a covered
456 | work results from an entity transaction, each party to that
457 | transaction who receives a copy of the work also receives whatever
458 | licenses to the work the party's predecessor in interest had or could
459 | give under the previous paragraph, plus a right to possession of the
460 | Corresponding Source of the work from the predecessor in interest, if
461 | the predecessor has it or can get it with reasonable efforts.
462 |
463 | You may not impose any further restrictions on the exercise of the
464 | rights granted or affirmed under this License. For example, you may
465 | not impose a license fee, royalty, or other charge for exercise of
466 | rights granted under this License, and you may not initiate litigation
467 | (including a cross-claim or counterclaim in a lawsuit) alleging that
468 | any patent claim is infringed by making, using, selling, offering for
469 | sale, or importing the Program or any portion of it.
470 |
471 | 11. Patents.
472 |
473 | A "contributor" is a copyright holder who authorizes use under this
474 | License of the Program or a work on which the Program is based. The
475 | work thus licensed is called the contributor's "contributor version".
476 |
477 | A contributor's "essential patent claims" are all patent claims
478 | owned or controlled by the contributor, whether already acquired or
479 | hereafter acquired, that would be infringed by some manner, permitted
480 | by this License, of making, using, or selling its contributor version,
481 | but do not include claims that would be infringed only as a
482 | consequence of further modification of the contributor version. For
483 | purposes of this definition, "control" includes the right to grant
484 | patent sublicenses in a manner consistent with the requirements of
485 | this License.
486 |
487 | Each contributor grants you a non-exclusive, worldwide, royalty-free
488 | patent license under the contributor's essential patent claims, to
489 | make, use, sell, offer for sale, import and otherwise run, modify and
490 | propagate the contents of its contributor version.
491 |
492 | In the following three paragraphs, a "patent license" is any express
493 | agreement or commitment, however denominated, not to enforce a patent
494 | (such as an express permission to practice a patent or covenant not to
495 | sue for patent infringement). To "grant" such a patent license to a
496 | party means to make such an agreement or commitment not to enforce a
497 | patent against the party.
498 |
499 | If you convey a covered work, knowingly relying on a patent license,
500 | and the Corresponding Source of the work is not available for anyone
501 | to copy, free of charge and under the terms of this License, through a
502 | publicly available network server or other readily accessible means,
503 | then you must either (1) cause the Corresponding Source to be so
504 | available, or (2) arrange to deprive yourself of the benefit of the
505 | patent license for this particular work, or (3) arrange, in a manner
506 | consistent with the requirements of this License, to extend the patent
507 | license to downstream recipients. "Knowingly relying" means you have
508 | actual knowledge that, but for the patent license, your conveying the
509 | covered work in a country, or your recipient's use of the covered work
510 | in a country, would infringe one or more identifiable patents in that
511 | country that you have reason to believe are valid.
512 |
513 | If, pursuant to or in connection with a single transaction or
514 | arrangement, you convey, or propagate by procuring conveyance of, a
515 | covered work, and grant a patent license to some of the parties
516 | receiving the covered work authorizing them to use, propagate, modify
517 | or convey a specific copy of the covered work, then the patent license
518 | you grant is automatically extended to all recipients of the covered
519 | work and works based on it.
520 |
521 | A patent license is "discriminatory" if it does not include within
522 | the scope of its coverage, prohibits the exercise of, or is
523 | conditioned on the non-exercise of one or more of the rights that are
524 | specifically granted under this License. You may not convey a covered
525 | work if you are a party to an arrangement with a third party that is
526 | in the business of distributing software, under which you make payment
527 | to the third party based on the extent of your activity of conveying
528 | the work, and under which the third party grants, to any of the
529 | parties who would receive the covered work from you, a discriminatory
530 | patent license (a) in connection with copies of the covered work
531 | conveyed by you (or copies made from those copies), or (b) primarily
532 | for and in connection with specific products or compilations that
533 | contain the covered work, unless you entered into that arrangement,
534 | or that patent license was granted, prior to 28 March 2007.
535 |
536 | Nothing in this License shall be construed as excluding or limiting
537 | any implied license or other defenses to infringement that may
538 | otherwise be available to you under applicable patent law.
539 |
540 | 12. No Surrender of Others' Freedom.
541 |
542 | If conditions are imposed on you (whether by court order, agreement or
543 | otherwise) that contradict the conditions of this License, they do not
544 | excuse you from the conditions of this License. If you cannot convey a
545 | covered work so as to satisfy simultaneously your obligations under this
546 | License and any other pertinent obligations, then as a consequence you may
547 | not convey it at all. For example, if you agree to terms that obligate you
548 | to collect a royalty for further conveying from those to whom you convey
549 | the Program, the only way you could satisfy both those terms and this
550 | License would be to refrain entirely from conveying the Program.
551 |
552 | 13. Use with the GNU Affero General Public License.
553 |
554 | Notwithstanding any other provision of this License, you have
555 | permission to link or combine any covered work with a work licensed
556 | under version 3 of the GNU Affero General Public License into a single
557 | combined work, and to convey the resulting work. The terms of this
558 | License will continue to apply to the part which is the covered work,
559 | but the special requirements of the GNU Affero General Public License,
560 | section 13, concerning interaction through a network will apply to the
561 | combination as such.
562 |
563 | 14. Revised Versions of this License.
564 |
565 | The Free Software Foundation may publish revised and/or new versions of
566 | the GNU General Public License from time to time. Such new versions will
567 | be similar in spirit to the present version, but may differ in detail to
568 | address new problems or concerns.
569 |
570 | Each version is given a distinguishing version number. If the
571 | Program specifies that a certain numbered version of the GNU General
572 | Public License "or any later version" applies to it, you have the
573 | option of following the terms and conditions either of that numbered
574 | version or of any later version published by the Free Software
575 | Foundation. If the Program does not specify a version number of the
576 | GNU General Public License, you may choose any version ever published
577 | by the Free Software Foundation.
578 |
579 | If the Program specifies that a proxy can decide which future
580 | versions of the GNU General Public License can be used, that proxy's
581 | public statement of acceptance of a version permanently authorizes you
582 | to choose that version for the Program.
583 |
584 | Later license versions may give you additional or different
585 | permissions. However, no additional obligations are imposed on any
586 | author or copyright holder as a result of your choosing to follow a
587 | later version.
588 |
589 | 15. Disclaimer of Warranty.
590 |
591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
599 |
600 | 16. Limitation of Liability.
601 |
602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
610 | SUCH DAMAGES.
611 |
612 | 17. Interpretation of Sections 15 and 16.
613 |
614 | If the disclaimer of warranty and limitation of liability provided
615 | above cannot be given local legal effect according to their terms,
616 | reviewing courts shall apply local law that most closely approximates
617 | an absolute waiver of all civil liability in connection with the
618 | Program, unless a warranty or assumption of liability accompanies a
619 | copy of the Program in return for a fee.
620 |
621 | END OF TERMS AND CONDITIONS
622 |
623 | How to Apply These Terms to Your New Programs
624 |
625 | If you develop a new program, and you want it to be of the greatest
626 | possible use to the public, the best way to achieve this is to make it
627 | free software which everyone can redistribute and change under these terms.
628 |
629 | To do so, attach the following notices to the program. It is safest
630 | to attach them to the start of each source file to most effectively
631 | state the exclusion of warranty; and each file should have at least
632 | the "copyright" line and a pointer to where the full notice is found.
633 |
634 |
635 | Copyright (C)
636 |
637 | This program is free software: you can redistribute it and/or modify
638 | it under the terms of the GNU General Public License as published by
639 | the Free Software Foundation, either version 3 of the License, or
640 | (at your option) any later version.
641 |
642 | This program is distributed in the hope that it will be useful,
643 | but WITHOUT ANY WARRANTY; without even the implied warranty of
644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
645 | GNU General Public License for more details.
646 |
647 | You should have received a copy of the GNU General Public License
648 | along with this program. If not, see .
649 |
650 | Also add information on how to contact you by electronic and paper mail.
651 |
652 | If the program does terminal interaction, make it output a short
653 | notice like this when it starts in an interactive mode:
654 |
655 | Copyright (C)
656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
657 | This is free software, and you are welcome to redistribute it
658 | under certain conditions; type `show c' for details.
659 |
660 | The hypothetical commands `show w' and `show c' should show the appropriate
661 | parts of the General Public License. Of course, your program's commands
662 | might be different; for a GUI interface, you would use an "about box".
663 |
664 | You should also get your employer (if you work as a programmer) or school,
665 | if any, to sign a "copyright disclaimer" for the program, if necessary.
666 | For more information on this, and how to apply and follow the GNU GPL, see
667 | .
668 |
669 | The GNU General Public License does not permit incorporating your program
670 | into proprietary programs. If your program is a subroutine library, you
671 | may consider it more useful to permit linking proprietary applications with
672 | the library. If this is what you want to do, use the GNU Lesser General
673 | Public License instead of this License. But first, please read
674 | .
--------------------------------------------------------------------------------
/ttscn.py:
--------------------------------------------------------------------------------
1 | """
2 | 此方法用于繁体字转简体字
3 | 数据来源 BYVoid/OpenCC
4 | 原内容通过 Apache-2.0 协议开源
5 | 数据为2023/11/25
6 | 部分修改,不转换 剋->克 等简体中文保留的字符
7 | """
8 |
9 | ts_dic = {
10 | "㑮": "𫝈",
11 | "㑯": "㑔",
12 | "㑳": "㑇",
13 | "㑶": "㐹",
14 | "㒓": "𠉂",
15 | "㓄": "𪠟",
16 | "㓨": "刾",
17 | "㔋": "𪟎",
18 | "㖮": "𪠵",
19 | "㗲": "𠵾",
20 | "㗿": "𪡛",
21 | "㘉": "𠰱",
22 | "㘓": "𪢌",
23 | "㘚": "㘎",
24 | "㛝": "𫝦",
25 | "㜄": "㚯",
26 | "㜏": "㛣",
27 | "㜐": "𫝧",
28 | "㜗": "𡞋",
29 | "㜢": "𡞱",
30 | "㜷": "𡝠",
31 | "㞞": "𪨊",
32 | "㟺": "𪩇",
33 | "㠏": "㟆",
34 | "㠣": "𫵷",
35 | "㢗": "𪪑",
36 | "㢝": "𢋈",
37 | "㥮": "㤘",
38 | "㦎": "𢛯",
39 | "㦛": "𢗓",
40 | "㦞": "𪫷",
41 | "㨻": "𪮃",
42 | "㩋": "𪮋",
43 | "㩜": "㨫",
44 | "㩳": "㧐",
45 | "㩵": "擜",
46 | "㪎": "𪯋",
47 | "㯤": "𣘐",
48 | "㰙": "𣗙",
49 | "㵗": "𣳆",
50 | "㵾": "𪷍",
51 | "㶆": "𫞛",
52 | "㷍": "𤆢",
53 | "㷿": "𤈷",
54 | "㸇": "𤎺",
55 | "㹽": "𫞣",
56 | "㺏": "𤠋",
57 | "㺜": "𪺻",
58 | "㻶": "𪼋",
59 | "㿖": "𪽮",
60 | "㿗": "𤻊",
61 | "㿧": "𤽯",
62 | "䀉": "𥁢",
63 | "䀹": "𥅴",
64 | "䁪": "𥇢",
65 | "䁻": "䀥",
66 | "䂎": "𥎝",
67 | "䃮": "鿎",
68 | "䅐": "𫀨",
69 | "䅳": "𫀬",
70 | "䆉": "𫁂",
71 | "䉑": "𫁲",
72 | "䉙": "𥬀",
73 | "䉬": "𫂈",
74 | "䉲": "𥮜",
75 | "䉶": "𫁷",
76 | "䊭": "𥺅",
77 | "䊷": "䌶",
78 | "䊺": "𫄚",
79 | "䋃": "𫄜",
80 | "䋔": "𫄞",
81 | "䋙": "䌺",
82 | "䋚": "䌻",
83 | "䋦": "𫄩",
84 | "䋹": "䌿",
85 | "䋻": "䌾",
86 | "䋼": "𫄮",
87 | "䋿": "𦈓",
88 | "䌈": "𦈖",
89 | "䌋": "𦈘",
90 | "䌖": "𦈜",
91 | "䌝": "𦈟",
92 | "䌟": "𦈞",
93 | "䌥": "𦈠",
94 | "䌰": "𦈙",
95 | "䍤": "𫅅",
96 | "䍦": "䍠",
97 | "䍽": "𦍠",
98 | "䎙": "𫅭",
99 | "䎱": "䎬",
100 | "䓣": "𬜯",
101 | "䕤": "𫟕",
102 | "䕳": "𦰴",
103 | "䖅": "𫟑",
104 | "䗅": "𫊪",
105 | "䗿": "𧉞",
106 | "䙔": "𫋲",
107 | "䙡": "䙌",
108 | "䙱": "𧜭",
109 | "䚩": "𫌯",
110 | "䛄": "𫍠",
111 | "䛳": "𫍫",
112 | "䜀": "䜧",
113 | "䜖": "𫟢",
114 | "䝭": "𫎧",
115 | "䝻": "𧹕",
116 | "䝼": "䞍",
117 | "䞈": "𧹑",
118 | "䞋": "𫎪",
119 | "䞓": "𫎭",
120 | "䟃": "𫎺",
121 | "䟆": "𫎳",
122 | "䟐": "𫎱",
123 | "䠆": "𫏃",
124 | "䠱": "𨅛",
125 | "䡐": "𫟤",
126 | "䡩": "𫟥",
127 | "䡵": "𫟦",
128 | "䢨": "𨑹",
129 | "䤤": "𫟺",
130 | "䥄": "𫠀",
131 | "䥇": "䦂",
132 | "䥑": "鿏",
133 | "䥕": "𬭯",
134 | "䥗": "𫔋",
135 | "䥩": "𨱖",
136 | "䥯": "𫔆",
137 | "䥱": "䥾",
138 | "䦘": "𨸄",
139 | "䦛": "䦶",
140 | "䦟": "䦷",
141 | "䦯": "𫔵",
142 | "䦳": "𨷿",
143 | "䧢": "𨸟",
144 | "䪊": "𫖅",
145 | "䪏": "𩏼",
146 | "䪗": "𩐀",
147 | "䪘": "𩏿",
148 | "䪴": "𫖫",
149 | "䪾": "𫖬",
150 | "䫀": "𫖱",
151 | "䫂": "𫖰",
152 | "䫟": "𫖲",
153 | "䫴": "𩖗",
154 | "䫶": "𫖺",
155 | "䫻": "𫗇",
156 | "䫾": "𫠈",
157 | "䬓": "𫗊",
158 | "䬘": "𩙮",
159 | "䬝": "𩙯",
160 | "䬞": "𩙧",
161 | "䬧": "𫗟",
162 | "䭀": "𩠇",
163 | "䭃": "𩠈",
164 | "䭑": "𫗱",
165 | "䭔": "𫗰",
166 | "䭿": "𩧭",
167 | "䮄": "𫠊",
168 | "䮝": "𩧰",
169 | "䮞": "𩨁",
170 | "䮠": "𩧿",
171 | "䮫": "𩨇",
172 | "䮰": "𫘮",
173 | "䮳": "𩨏",
174 | "䮾": "𩧪",
175 | "䯀": "䯅",
176 | "䯤": "𩩈",
177 | "䰾": "鲃",
178 | "䱀": "𫚐",
179 | "䱁": "𫚏",
180 | "䱙": "𩾈",
181 | "䱧": "𫚠",
182 | "䱬": "𩾊",
183 | "䱰": "𩾋",
184 | "䱷": "䲣",
185 | "䱸": "𫠑",
186 | "䱽": "䲝",
187 | "䲁": "鳚",
188 | "䲅": "𫚜",
189 | "䲖": "𩾂",
190 | "䲘": "鳤",
191 | "䲰": "𪉂",
192 | "䳜": "𫛬",
193 | "䳢": "𫛰",
194 | "䳤": "𫛮",
195 | "䳧": "𫛺",
196 | "䳫": "𫛼",
197 | "䴉": "鹮",
198 | "䴋": "𫜅",
199 | "䴬": "𪎈",
200 | "䴱": "𫜒",
201 | "䴴": "𪎋",
202 | "䴽": "𫜔",
203 | "䵳": "𪑅",
204 | "䵴": "𫜙",
205 | "䶕": "𫜨",
206 | "䶲": "𫜳",
207 | "丟": "丢",
208 | "並": "并",
209 | "乾": "干",
210 | "亂": "乱",
211 | "亙": "亘",
212 | "亞": "亚",
213 | "佇": "伫",
214 | "佈": "布",
215 | "佔": "占",
216 | "併": "并",
217 | "來": "来",
218 | "侖": "仑",
219 | "侶": "侣",
220 | "侷": "局",
221 | "俁": "俣",
222 | "係": "系",
223 | "俓": "𠇹",
224 | "俔": "伣",
225 | "俠": "侠",
226 | "俥": "伡",
227 | "俬": "私",
228 | "倀": "伥",
229 | "倆": "俩",
230 | "倈": "俫",
231 | "倉": "仓",
232 | "個": "个",
233 | "們": "们",
234 | "倖": "幸",
235 | "倫": "伦",
236 | "倲": "㑈",
237 | "偉": "伟",
238 | "偑": "㐽",
239 | "側": "侧",
240 | "偵": "侦",
241 | "偽": "伪",
242 | "傌": "㐷",
243 | "傑": "杰",
244 | "傖": "伧",
245 | "傘": "伞",
246 | "備": "备",
247 | "傢": "家",
248 | "傭": "佣",
249 | "傯": "偬",
250 | "傳": "传",
251 | "傴": "伛",
252 | "債": "债",
253 | "傷": "伤",
254 | "傾": "倾",
255 | "僂": "偻",
256 | "僅": "仅",
257 | "僉": "佥",
258 | "僑": "侨",
259 | "僕": "仆",
260 | "僞": "伪",
261 | "僤": "𫢸",
262 | "僥": "侥",
263 | "僨": "偾",
264 | "僱": "雇",
265 | "價": "价",
266 | "儀": "仪",
267 | "儁": "俊",
268 | "儂": "侬",
269 | "億": "亿",
270 | "儈": "侩",
271 | "儉": "俭",
272 | "儎": "傤",
273 | "儐": "傧",
274 | "儔": "俦",
275 | "儕": "侪",
276 | "儘": "尽",
277 | "償": "偿",
278 | "儣": "𠆲",
279 | "優": "优",
280 | "儭": "𠋆",
281 | "儲": "储",
282 | "儷": "俪",
283 | "儸": "㑩",
284 | "儺": "傩",
285 | "儻": "傥",
286 | "儼": "俨",
287 | "兇": "凶",
288 | "兌": "兑",
289 | "兒": "儿",
290 | "兗": "兖",
291 | "內": "内",
292 | "兩": "两",
293 | "冊": "册",
294 | "冑": "胄",
295 | "冪": "幂",
296 | "凈": "净",
297 | "凍": "冻",
298 | "凙": "𪞝",
299 | "凜": "凛",
300 | "凱": "凯",
301 | "別": "别",
302 | "刪": "删",
303 | "剄": "刭",
304 | "則": "则",
305 | "剎": "刹",
306 | "剗": "刬",
307 | "剛": "刚",
308 | "剝": "剥",
309 | "剮": "剐",
310 | "剴": "剀",
311 | "創": "创",
312 | "剷": "铲",
313 | "剾": "𠛅",
314 | "劃": "划",
315 | "劇": "剧",
316 | "劉": "刘",
317 | "劊": "刽",
318 | "劌": "刿",
319 | "劍": "剑",
320 | "劏": "㓥",
321 | "劑": "剂",
322 | "劚": "㔉",
323 | "勁": "劲",
324 | "勑": "𠡠",
325 | "動": "动",
326 | "務": "务",
327 | "勛": "勋",
328 | "勝": "胜",
329 | "勞": "劳",
330 | "勢": "势",
331 | "勣": "𪟝",
332 | "勩": "勚",
333 | "勱": "劢",
334 | "勳": "勋",
335 | "勵": "励",
336 | "勸": "劝",
337 | "勻": "匀",
338 | "匭": "匦",
339 | "匯": "汇",
340 | "匱": "匮",
341 | "區": "区",
342 | "協": "协",
343 | "卹": "恤",
344 | "卻": "却",
345 | "卽": "即",
346 | "厙": "厍",
347 | "厠": "厕",
348 | "厤": "历",
349 | "厭": "厌",
350 | "厲": "厉",
351 | "厴": "厣",
352 | "參": "参",
353 | "叄": "叁",
354 | "叢": "丛",
355 | "吒": "咤",
356 | "吳": "吴",
357 | "吶": "呐",
358 | "呂": "吕",
359 | "咼": "呙",
360 | "員": "员",
361 | "哯": "𠯟",
362 | "唄": "呗",
363 | "唓": "𪠳",
364 | "唸": "念",
365 | "問": "问",
366 | "啓": "启",
367 | "啞": "哑",
368 | "啟": "启",
369 | "啢": "唡",
370 | "喎": "㖞",
371 | "喚": "唤",
372 | "喪": "丧",
373 | "喫": "吃",
374 | "喬": "乔",
375 | "單": "单",
376 | "喲": "哟",
377 | "嗆": "呛",
378 | "嗇": "啬",
379 | "嗊": "唝",
380 | "嗎": "吗",
381 | "嗚": "呜",
382 | "嗩": "唢",
383 | "嗰": "𠮶",
384 | "嗶": "哔",
385 | "嗹": "𪡏",
386 | "嘆": "叹",
387 | "嘍": "喽",
388 | "嘓": "啯",
389 | "嘔": "呕",
390 | "嘖": "啧",
391 | "嘗": "尝",
392 | "嘜": "唛",
393 | "嘩": "哗",
394 | "嘪": "𪡃",
395 | "嘮": "唠",
396 | "嘯": "啸",
397 | "嘰": "叽",
398 | "嘳": "𪡞",
399 | "嘵": "哓",
400 | "嘸": "呒",
401 | "嘺": "𪡀",
402 | "嘽": "啴",
403 | "噁": "恶",
404 | "噅": "𠯠",
405 | "噓": "嘘",
406 | "噚": "㖊",
407 | "噝": "咝",
408 | "噞": "𪡋",
409 | "噠": "哒",
410 | "噥": "哝",
411 | "噦": "哕",
412 | "噯": "嗳",
413 | "噲": "哙",
414 | "噴": "喷",
415 | "噸": "吨",
416 | "噹": "当",
417 | "嚀": "咛",
418 | "嚇": "吓",
419 | "嚌": "哜",
420 | "嚐": "尝",
421 | "嚕": "噜",
422 | "嚙": "啮",
423 | "嚛": "𪠸",
424 | "嚥": "咽",
425 | "嚦": "呖",
426 | "嚧": "𠰷",
427 | "嚨": "咙",
428 | "嚮": "向",
429 | "嚲": "亸",
430 | "嚳": "喾",
431 | "嚴": "严",
432 | "嚶": "嘤",
433 | "嚽": "𪢕",
434 | "囀": "啭",
435 | "囁": "嗫",
436 | "囂": "嚣",
437 | "囃": "𠱞",
438 | "囅": "冁",
439 | "囈": "呓",
440 | "囉": "啰",
441 | "囌": "苏",
442 | "囑": "嘱",
443 | "囒": "𪢠",
444 | "囪": "囱",
445 | "圇": "囵",
446 | "國": "国",
447 | "圍": "围",
448 | "園": "园",
449 | "圓": "圆",
450 | "圖": "图",
451 | "團": "团",
452 | "圞": "𪢮",
453 | "垻": "坝",
454 | "埡": "垭",
455 | "埨": "𫭢",
456 | "埬": "𪣆",
457 | "埰": "采",
458 | "執": "执",
459 | "堅": "坚",
460 | "堊": "垩",
461 | "堖": "垴",
462 | "堚": "𪣒",
463 | "堝": "埚",
464 | "堯": "尧",
465 | "報": "报",
466 | "場": "场",
467 | "塊": "块",
468 | "塋": "茔",
469 | "塏": "垲",
470 | "塒": "埘",
471 | "塗": "涂",
472 | "塚": "冢",
473 | "塢": "坞",
474 | "塤": "埙",
475 | "塵": "尘",
476 | "塸": "𫭟",
477 | "塹": "堑",
478 | "塿": "𪣻",
479 | "墊": "垫",
480 | "墜": "坠",
481 | "墠": "𫮃",
482 | "墮": "堕",
483 | "墰": "坛",
484 | "墲": "𪢸",
485 | "墳": "坟",
486 | "墶": "垯",
487 | "墻": "墙",
488 | "墾": "垦",
489 | "壇": "坛",
490 | "壈": "𡒄",
491 | "壋": "垱",
492 | "壎": "埙",
493 | "壓": "压",
494 | "壗": "𡋤",
495 | "壘": "垒",
496 | "壙": "圹",
497 | "壚": "垆",
498 | "壜": "坛",
499 | "壞": "坏",
500 | "壟": "垄",
501 | "壠": "垅",
502 | "壢": "坜",
503 | "壣": "𪤚",
504 | "壩": "坝",
505 | "壪": "塆",
506 | "壯": "壮",
507 | "壺": "壶",
508 | "壼": "壸",
509 | "壽": "寿",
510 | "夠": "够",
511 | "夢": "梦",
512 | "夥": "伙",
513 | "夾": "夹",
514 | "奐": "奂",
515 | "奧": "奥",
516 | "奩": "奁",
517 | "奪": "夺",
518 | "奬": "奖",
519 | "奮": "奋",
520 | "奼": "姹",
521 | "妝": "妆",
522 | "姍": "姗",
523 | "姦": "奸",
524 | "娙": "𫰛",
525 | "娛": "娱",
526 | "婁": "娄",
527 | "婡": "𫝫",
528 | "婦": "妇",
529 | "婭": "娅",
530 | "媈": "𫝨",
531 | "媧": "娲",
532 | "媯": "妫",
533 | "媰": "㛀",
534 | "媼": "媪",
535 | "媽": "妈",
536 | "嫋": "袅",
537 | "嫗": "妪",
538 | "嫵": "妩",
539 | "嫺": "娴",
540 | "嫻": "娴",
541 | "嫿": "婳",
542 | "嬀": "妫",
543 | "嬃": "媭",
544 | "嬇": "𫝬",
545 | "嬈": "娆",
546 | "嬋": "婵",
547 | "嬌": "娇",
548 | "嬙": "嫱",
549 | "嬡": "嫒",
550 | "嬣": "𪥰",
551 | "嬤": "嬷",
552 | "嬦": "𫝩",
553 | "嬪": "嫔",
554 | "嬰": "婴",
555 | "嬸": "婶",
556 | "嬻": "𪥿",
557 | "孃": "娘",
558 | "孄": "𫝮",
559 | "孆": "𫝭",
560 | "孇": "𪥫",
561 | "孋": "㛤",
562 | "孌": "娈",
563 | "孎": "𡠟",
564 | "孫": "孙",
565 | "學": "学",
566 | "孻": "𡥧",
567 | "孾": "𪧀",
568 | "孿": "孪",
569 | "宮": "宫",
570 | "寀": "采",
571 | "寠": "𪧘",
572 | "寢": "寝",
573 | "實": "实",
574 | "寧": "宁",
575 | "審": "审",
576 | "寫": "写",
577 | "寬": "宽",
578 | "寵": "宠",
579 | "寶": "宝",
580 | "將": "将",
581 | "專": "专",
582 | "尋": "寻",
583 | "對": "对",
584 | "導": "导",
585 | "尷": "尴",
586 | "屆": "届",
587 | "屍": "尸",
588 | "屓": "屃",
589 | "屜": "屉",
590 | "屢": "屡",
591 | "層": "层",
592 | "屨": "屦",
593 | "屩": "𪨗",
594 | "屬": "属",
595 | "岡": "冈",
596 | "峯": "峰",
597 | "峴": "岘",
598 | "島": "岛",
599 | "峽": "峡",
600 | "崍": "崃",
601 | "崑": "昆",
602 | "崗": "岗",
603 | "崙": "仑",
604 | "崢": "峥",
605 | "崬": "岽",
606 | "嵐": "岚",
607 | "嵗": "岁",
608 | "嵼": "𡶴",
609 | "嵽": "𫶇",
610 | "嵾": "㟥",
611 | "嶁": "嵝",
612 | "嶄": "崭",
613 | "嶇": "岖",
614 | "嶈": "𡺃",
615 | "嶔": "嵚",
616 | "嶗": "崂",
617 | "嶘": "𡺄",
618 | "嶠": "峤",
619 | "嶢": "峣",
620 | "嶧": "峄",
621 | "嶨": "峃",
622 | "嶮": "崄",
623 | "嶸": "嵘",
624 | "嶹": "𫝵",
625 | "嶺": "岭",
626 | "嶼": "屿",
627 | "嶽": "岳",
628 | "巊": "𪩎",
629 | "巋": "岿",
630 | "巒": "峦",
631 | "巔": "巅",
632 | "巖": "岩",
633 | "巗": "𪨷",
634 | "巘": "𪩘",
635 | "巰": "巯",
636 | "巹": "卺",
637 | "帥": "帅",
638 | "師": "师",
639 | "帳": "帐",
640 | "帶": "带",
641 | "幀": "帧",
642 | "幃": "帏",
643 | "幓": "㡎",
644 | "幗": "帼",
645 | "幘": "帻",
646 | "幝": "𪩷",
647 | "幟": "帜",
648 | "幣": "币",
649 | "幩": "𪩸",
650 | "幫": "帮",
651 | "幬": "帱",
652 | "幹": "干",
653 | "幾": "几",
654 | "庫": "库",
655 | "廁": "厕",
656 | "廂": "厢",
657 | "廄": "厩",
658 | "廈": "厦",
659 | "廎": "庼",
660 | "廕": "荫",
661 | "廚": "厨",
662 | "廝": "厮",
663 | "廞": "𫷷",
664 | "廟": "庙",
665 | "廠": "厂",
666 | "廡": "庑",
667 | "廢": "废",
668 | "廣": "广",
669 | "廧": "𪪞",
670 | "廩": "廪",
671 | "廬": "庐",
672 | "廳": "厅",
673 | "弒": "弑",
674 | "弔": "吊",
675 | "弳": "弪",
676 | "張": "张",
677 | "強": "强",
678 | "彃": "𪪼",
679 | "彄": "𫸩",
680 | "彆": "别",
681 | "彈": "弹",
682 | "彌": "弥",
683 | "彎": "弯",
684 | "彔": "录",
685 | "彙": "汇",
686 | "彠": "彟",
687 | "彥": "彦",
688 | "彫": "雕",
689 | "彲": "彨",
690 | "彷": "彷",
691 | "彿": "佛",
692 | "後": "后",
693 | "徑": "径",
694 | "從": "从",
695 | "徠": "徕",
696 | "復": "复",
697 | "徵": "征",
698 | "徹": "彻",
699 | "徿": "𪫌",
700 | "恆": "恒",
701 | "恥": "耻",
702 | "悅": "悦",
703 | "悞": "悮",
704 | "悵": "怅",
705 | "悶": "闷",
706 | "悽": "凄",
707 | "惡": "恶",
708 | "惱": "恼",
709 | "惲": "恽",
710 | "惻": "恻",
711 | "愛": "爱",
712 | "愜": "惬",
713 | "愨": "悫",
714 | "愴": "怆",
715 | "愷": "恺",
716 | "愻": "𢙏",
717 | "愾": "忾",
718 | "慄": "栗",
719 | "態": "态",
720 | "慍": "愠",
721 | "慘": "惨",
722 | "慚": "惭",
723 | "慟": "恸",
724 | "慣": "惯",
725 | "慤": "悫",
726 | "慪": "怄",
727 | "慫": "怂",
728 | "慮": "虑",
729 | "慳": "悭",
730 | "慶": "庆",
731 | "慺": "㥪",
732 | "慼": "戚",
733 | "慾": "欲",
734 | "憂": "忧",
735 | "憊": "惫",
736 | "憐": "怜",
737 | "憑": "凭",
738 | "憒": "愦",
739 | "憖": "慭",
740 | "憚": "惮",
741 | "憢": "𢙒",
742 | "憤": "愤",
743 | "憫": "悯",
744 | "憮": "怃",
745 | "憲": "宪",
746 | "憶": "忆",
747 | "憸": "𪫺",
748 | "憹": "𢙐",
749 | "懀": "𢙓",
750 | "懇": "恳",
751 | "應": "应",
752 | "懌": "怿",
753 | "懍": "懔",
754 | "懎": "𢠁",
755 | "懞": "蒙",
756 | "懟": "怼",
757 | "懣": "懑",
758 | "懤": "㤽",
759 | "懨": "恹",
760 | "懲": "惩",
761 | "懶": "懒",
762 | "懷": "怀",
763 | "懸": "悬",
764 | "懺": "忏",
765 | "懼": "惧",
766 | "懾": "慑",
767 | "戀": "恋",
768 | "戇": "戆",
769 | "戔": "戋",
770 | "戧": "戗",
771 | "戩": "戬",
772 | "戰": "战",
773 | "戱": "戯",
774 | "戲": "戏",
775 | "戶": "户",
776 | "拋": "抛",
777 | "挩": "捝",
778 | "挱": "挲",
779 | "挾": "挟",
780 | "捨": "舍",
781 | "捫": "扪",
782 | "捱": "挨",
783 | "捲": "卷",
784 | "掃": "扫",
785 | "掄": "抡",
786 | "掆": "㧏",
787 | "掗": "挜",
788 | "掙": "挣",
789 | "掚": "𪭵",
790 | "掛": "挂",
791 | "採": "采",
792 | "揀": "拣",
793 | "揚": "扬",
794 | "換": "换",
795 | "揮": "挥",
796 | "揯": "搄",
797 | "損": "损",
798 | "搖": "摇",
799 | "搗": "捣",
800 | "搵": "揾",
801 | "搶": "抢",
802 | "摋": "𢫬",
803 | "摐": "𪭢",
804 | "摑": "掴",
805 | "摜": "掼",
806 | "摟": "搂",
807 | "摯": "挚",
808 | "摳": "抠",
809 | "摶": "抟",
810 | "摺": "折",
811 | "摻": "掺",
812 | "撈": "捞",
813 | "撊": "𪭾",
814 | "撏": "挦",
815 | "撐": "撑",
816 | "撓": "挠",
817 | "撝": "㧑",
818 | "撟": "挢",
819 | "撣": "掸",
820 | "撥": "拨",
821 | "撧": "𪮖",
822 | "撫": "抚",
823 | "撲": "扑",
824 | "撳": "揿",
825 | "撻": "挞",
826 | "撾": "挝",
827 | "撿": "捡",
828 | "擁": "拥",
829 | "擄": "掳",
830 | "擇": "择",
831 | "擊": "击",
832 | "擋": "挡",
833 | "擓": "㧟",
834 | "擔": "担",
835 | "據": "据",
836 | "擟": "𪭧",
837 | "擠": "挤",
838 | "擣": "捣",
839 | "擫": "𢬍",
840 | "擬": "拟",
841 | "擯": "摈",
842 | "擰": "拧",
843 | "擱": "搁",
844 | "擲": "掷",
845 | "擴": "扩",
846 | "擷": "撷",
847 | "擺": "摆",
848 | "擻": "擞",
849 | "擼": "撸",
850 | "擽": "㧰",
851 | "擾": "扰",
852 | "攄": "摅",
853 | "攆": "撵",
854 | "攋": "𪮶",
855 | "攏": "拢",
856 | "攔": "拦",
857 | "攖": "撄",
858 | "攙": "搀",
859 | "攛": "撺",
860 | "攜": "携",
861 | "攝": "摄",
862 | "攢": "攒",
863 | "攣": "挛",
864 | "攤": "摊",
865 | "攪": "搅",
866 | "攬": "揽",
867 | "敎": "教",
868 | "敓": "敚",
869 | "敗": "败",
870 | "敘": "叙",
871 | "敵": "敌",
872 | "數": "数",
873 | "斂": "敛",
874 | "斃": "毙",
875 | "斅": "𢽾",
876 | "斆": "敩",
877 | "斕": "斓",
878 | "斬": "斩",
879 | "斷": "断",
880 | "斸": "𣃁",
881 | "於": "于",
882 | "旂": "旗",
883 | "旣": "既",
884 | "昇": "升",
885 | "時": "时",
886 | "晉": "晋",
887 | "晛": "𬀪",
888 | "晝": "昼",
889 | "暈": "晕",
890 | "暉": "晖",
891 | "暐": "𬀩",
892 | "暘": "旸",
893 | "暢": "畅",
894 | "暫": "暂",
895 | "曄": "晔",
896 | "曆": "历",
897 | "曇": "昙",
898 | "曉": "晓",
899 | "曊": "𪰶",
900 | "曏": "向",
901 | "曖": "暧",
902 | "曠": "旷",
903 | "曥": "𣆐",
904 | "曨": "昽",
905 | "曬": "晒",
906 | "書": "书",
907 | "會": "会",
908 | "朥": "𦛨",
909 | "朧": "胧",
910 | "朮": "术",
911 | "東": "东",
912 | "枴": "拐",
913 | "柵": "栅",
914 | "柺": "拐",
915 | "査": "查",
916 | "桱": "𣐕",
917 | "桿": "杆",
918 | "梔": "栀",
919 | "梖": "𪱷",
920 | "梘": "枧",
921 | "梜": "𬂩",
922 | "條": "条",
923 | "梟": "枭",
924 | "梲": "棁",
925 | "棄": "弃",
926 | "棊": "棋",
927 | "棖": "枨",
928 | "棗": "枣",
929 | "棟": "栋",
930 | "棡": "㭎",
931 | "棧": "栈",
932 | "棲": "栖",
933 | "棶": "梾",
934 | "椏": "桠",
935 | "椲": "㭏",
936 | "楇": "𣒌",
937 | "楊": "杨",
938 | "楓": "枫",
939 | "楨": "桢",
940 | "業": "业",
941 | "極": "极",
942 | "榘": "矩",
943 | "榦": "干",
944 | "榪": "杩",
945 | "榮": "荣",
946 | "榲": "榅",
947 | "榿": "桤",
948 | "構": "构",
949 | "槍": "枪",
950 | "槓": "杠",
951 | "槤": "梿",
952 | "槧": "椠",
953 | "槨": "椁",
954 | "槫": "𣏢",
955 | "槮": "椮",
956 | "槳": "桨",
957 | "槶": "椢",
958 | "槼": "椝",
959 | "樁": "桩",
960 | "樂": "乐",
961 | "樅": "枞",
962 | "樑": "梁",
963 | "樓": "楼",
964 | "標": "标",
965 | "樞": "枢",
966 | "樠": "𣗊",
967 | "樢": "㭤",
968 | "樣": "样",
969 | "樤": "𣔌",
970 | "樧": "榝",
971 | "樫": "㭴",
972 | "樳": "桪",
973 | "樸": "朴",
974 | "樹": "树",
975 | "樺": "桦",
976 | "樿": "椫",
977 | "橈": "桡",
978 | "橋": "桥",
979 | "機": "机",
980 | "橢": "椭",
981 | "橫": "横",
982 | "橯": "𣓿",
983 | "檁": "檩",
984 | "檉": "柽",
985 | "檔": "档",
986 | "檜": "桧",
987 | "檟": "槚",
988 | "檢": "检",
989 | "檣": "樯",
990 | "檭": "𣘴",
991 | "檮": "梼",
992 | "檯": "台",
993 | "檳": "槟",
994 | "檵": "𪲛",
995 | "檸": "柠",
996 | "檻": "槛",
997 | "櫃": "柜",
998 | "櫅": "𪲎",
999 | "櫍": "𬃊",
1000 | "櫓": "橹",
1001 | "櫚": "榈",
1002 | "櫛": "栉",
1003 | "櫝": "椟",
1004 | "櫞": "橼",
1005 | "櫟": "栎",
1006 | "櫠": "𪲮",
1007 | "櫥": "橱",
1008 | "櫧": "槠",
1009 | "櫨": "栌",
1010 | "櫪": "枥",
1011 | "櫫": "橥",
1012 | "櫬": "榇",
1013 | "櫱": "蘖",
1014 | "櫳": "栊",
1015 | "櫸": "榉",
1016 | "櫻": "樱",
1017 | "欄": "栏",
1018 | "欅": "榉",
1019 | "欇": "𪳍",
1020 | "權": "权",
1021 | "欍": "𣐤",
1022 | "欏": "椤",
1023 | "欐": "𪲔",
1024 | "欑": "𪴙",
1025 | "欒": "栾",
1026 | "欓": "𣗋",
1027 | "欖": "榄",
1028 | "欘": "𣚚",
1029 | "欞": "棂",
1030 | "欽": "钦",
1031 | "歎": "叹",
1032 | "歐": "欧",
1033 | "歟": "欤",
1034 | "歡": "欢",
1035 | "歲": "岁",
1036 | "歷": "历",
1037 | "歸": "归",
1038 | "歿": "殁",
1039 | "殘": "残",
1040 | "殞": "殒",
1041 | "殢": "𣨼",
1042 | "殤": "殇",
1043 | "殨": "㱮",
1044 | "殫": "殚",
1045 | "殭": "僵",
1046 | "殮": "殓",
1047 | "殯": "殡",
1048 | "殰": "㱩",
1049 | "殲": "歼",
1050 | "殺": "杀",
1051 | "殻": "壳",
1052 | "殼": "壳",
1053 | "毀": "毁",
1054 | "毆": "殴",
1055 | "毊": "𪵑",
1056 | "毿": "毵",
1057 | "氂": "牦",
1058 | "氈": "毡",
1059 | "氌": "氇",
1060 | "氣": "气",
1061 | "氫": "氢",
1062 | "氬": "氩",
1063 | "氭": "𣱝",
1064 | "氳": "氲",
1065 | "氾": "泛",
1066 | "汎": "泛",
1067 | "汙": "污",
1068 | "決": "决",
1069 | "沒": "没",
1070 | "沖": "冲",
1071 | "況": "况",
1072 | "泝": "溯",
1073 | "洩": "泄",
1074 | "洶": "汹",
1075 | "浹": "浃",
1076 | "浿": "𬇙",
1077 | "涇": "泾",
1078 | "涗": "涚",
1079 | "涼": "凉",
1080 | "淒": "凄",
1081 | "淚": "泪",
1082 | "淥": "渌",
1083 | "淨": "净",
1084 | "淩": "凌",
1085 | "淪": "沦",
1086 | "淵": "渊",
1087 | "淶": "涞",
1088 | "淺": "浅",
1089 | "渙": "涣",
1090 | "減": "减",
1091 | "渢": "沨",
1092 | "渦": "涡",
1093 | "測": "测",
1094 | "渾": "浑",
1095 | "湊": "凑",
1096 | "湋": "𣲗",
1097 | "湞": "浈",
1098 | "湧": "涌",
1099 | "湯": "汤",
1100 | "溈": "沩",
1101 | "準": "准",
1102 | "溝": "沟",
1103 | "溡": "𪶄",
1104 | "溫": "温",
1105 | "溮": "浉",
1106 | "溳": "涢",
1107 | "溼": "湿",
1108 | "滄": "沧",
1109 | "滅": "灭",
1110 | "滌": "涤",
1111 | "滎": "荥",
1112 | "滙": "汇",
1113 | "滬": "沪",
1114 | "滯": "滞",
1115 | "滲": "渗",
1116 | "滷": "卤",
1117 | "滸": "浒",
1118 | "滻": "浐",
1119 | "滾": "滚",
1120 | "滿": "满",
1121 | "漁": "渔",
1122 | "漊": "溇",
1123 | "漍": "𬇹",
1124 | "漚": "沤",
1125 | "漢": "汉",
1126 | "漣": "涟",
1127 | "漬": "渍",
1128 | "漲": "涨",
1129 | "漵": "溆",
1130 | "漸": "渐",
1131 | "漿": "浆",
1132 | "潁": "颍",
1133 | "潑": "泼",
1134 | "潔": "洁",
1135 | "潕": "𣲘",
1136 | "潙": "沩",
1137 | "潚": "㴋",
1138 | "潛": "潜",
1139 | "潣": "𫞗",
1140 | "潤": "润",
1141 | "潯": "浔",
1142 | "潰": "溃",
1143 | "潷": "滗",
1144 | "潿": "涠",
1145 | "澀": "涩",
1146 | "澅": "𣶩",
1147 | "澆": "浇",
1148 | "澇": "涝",
1149 | "澐": "沄",
1150 | "澗": "涧",
1151 | "澠": "渑",
1152 | "澤": "泽",
1153 | "澦": "滪",
1154 | "澩": "泶",
1155 | "澫": "𬇕",
1156 | "澬": "𫞚",
1157 | "澮": "浍",
1158 | "澱": "淀",
1159 | "澾": "㳠",
1160 | "濁": "浊",
1161 | "濃": "浓",
1162 | "濄": "㳡",
1163 | "濆": "𣸣",
1164 | "濕": "湿",
1165 | "濘": "泞",
1166 | "濚": "溁",
1167 | "濛": "蒙",
1168 | "濜": "浕",
1169 | "濟": "济",
1170 | "濤": "涛",
1171 | "濧": "㳔",
1172 | "濫": "滥",
1173 | "濰": "潍",
1174 | "濱": "滨",
1175 | "濺": "溅",
1176 | "濼": "泺",
1177 | "濾": "滤",
1178 | "濿": "𪵱",
1179 | "瀂": "澛",
1180 | "瀃": "𣽷",
1181 | "瀅": "滢",
1182 | "瀆": "渎",
1183 | "瀇": "㲿",
1184 | "瀉": "泻",
1185 | "瀋": "沈",
1186 | "瀏": "浏",
1187 | "瀕": "濒",
1188 | "瀘": "泸",
1189 | "瀝": "沥",
1190 | "瀟": "潇",
1191 | "瀠": "潆",
1192 | "瀦": "潴",
1193 | "瀧": "泷",
1194 | "瀨": "濑",
1195 | "瀰": "弥",
1196 | "瀲": "潋",
1197 | "瀾": "澜",
1198 | "灃": "沣",
1199 | "灄": "滠",
1200 | "灍": "𫞝",
1201 | "灑": "洒",
1202 | "灒": "𪷽",
1203 | "灕": "漓",
1204 | "灘": "滩",
1205 | "灙": "𣺼",
1206 | "灝": "灏",
1207 | "灡": "㳕",
1208 | "灣": "湾",
1209 | "灤": "滦",
1210 | "灧": "滟",
1211 | "灩": "滟",
1212 | "災": "灾",
1213 | "為": "为",
1214 | "烏": "乌",
1215 | "烴": "烃",
1216 | "無": "无",
1217 | "煇": "𪸩",
1218 | "煉": "炼",
1219 | "煒": "炜",
1220 | "煙": "烟",
1221 | "煢": "茕",
1222 | "煥": "焕",
1223 | "煩": "烦",
1224 | "煬": "炀",
1225 | "煱": "㶽",
1226 | "熂": "𪸕",
1227 | "熅": "煴",
1228 | "熉": "𤈶",
1229 | "熌": "𤇄",
1230 | "熒": "荧",
1231 | "熓": "𤆡",
1232 | "熗": "炝",
1233 | "熚": "𤇹",
1234 | "熡": "𤋏",
1235 | "熰": "𬉼",
1236 | "熱": "热",
1237 | "熲": "颎",
1238 | "熾": "炽",
1239 | "燀": "𬊤",
1240 | "燁": "烨",
1241 | "燈": "灯",
1242 | "燉": "炖",
1243 | "燒": "烧",
1244 | "燖": "𬊈",
1245 | "燙": "烫",
1246 | "燜": "焖",
1247 | "營": "营",
1248 | "燦": "灿",
1249 | "燬": "毁",
1250 | "燭": "烛",
1251 | "燴": "烩",
1252 | "燶": "㶶",
1253 | "燻": "熏",
1254 | "燼": "烬",
1255 | "燾": "焘",
1256 | "爃": "𫞡",
1257 | "爄": "𤇃",
1258 | "爇": "𦶟",
1259 | "爍": "烁",
1260 | "爐": "炉",
1261 | "爖": "𤇭",
1262 | "爛": "烂",
1263 | "爥": "𪹳",
1264 | "爧": "𫞠",
1265 | "爭": "争",
1266 | "爲": "为",
1267 | "爺": "爷",
1268 | "爾": "尔",
1269 | "牀": "床",
1270 | "牆": "墙",
1271 | "牘": "牍",
1272 | "牴": "牴",
1273 | "牽": "牵",
1274 | "犖": "荦",
1275 | "犛": "牦",
1276 | "犞": "𪺭",
1277 | "犢": "犊",
1278 | "犧": "牺",
1279 | "狀": "状",
1280 | "狹": "狭",
1281 | "狽": "狈",
1282 | "猌": "𪺽",
1283 | "猙": "狰",
1284 | "猶": "犹",
1285 | "猻": "狲",
1286 | "獁": "犸",
1287 | "獃": "呆",
1288 | "獄": "狱",
1289 | "獅": "狮",
1290 | "獊": "𪺷",
1291 | "獎": "奖",
1292 | "獨": "独",
1293 | "獩": "𤞃",
1294 | "獪": "狯",
1295 | "獫": "猃",
1296 | "獮": "狝",
1297 | "獰": "狞",
1298 | "獱": "㺍",
1299 | "獲": "获",
1300 | "獵": "猎",
1301 | "獷": "犷",
1302 | "獸": "兽",
1303 | "獺": "獭",
1304 | "獻": "献",
1305 | "獼": "猕",
1306 | "玀": "猡",
1307 | "玁": "𤞤",
1308 | "珼": "𫞥",
1309 | "現": "现",
1310 | "琱": "雕",
1311 | "琺": "珐",
1312 | "琿": "珲",
1313 | "瑋": "玮",
1314 | "瑒": "玚",
1315 | "瑣": "琐",
1316 | "瑤": "瑶",
1317 | "瑩": "莹",
1318 | "瑪": "玛",
1319 | "瑲": "玱",
1320 | "瑻": "𪻲",
1321 | "瑽": "𪻐",
1322 | "璉": "琏",
1323 | "璊": "𫞩",
1324 | "璕": "𬍤",
1325 | "璗": "𬍡",
1326 | "璝": "𪻺",
1327 | "璡": "琎",
1328 | "璣": "玑",
1329 | "璦": "瑷",
1330 | "璫": "珰",
1331 | "璯": "㻅",
1332 | "環": "环",
1333 | "璵": "玙",
1334 | "璸": "瑸",
1335 | "璼": "𫞨",
1336 | "璽": "玺",
1337 | "璾": "𫞦",
1338 | "璿": "璇",
1339 | "瓄": "𪻨",
1340 | "瓅": "𬍛",
1341 | "瓊": "琼",
1342 | "瓏": "珑",
1343 | "瓔": "璎",
1344 | "瓕": "𤦀",
1345 | "瓚": "瓒",
1346 | "瓛": "𤩽",
1347 | "甌": "瓯",
1348 | "甕": "瓮",
1349 | "產": "产",
1350 | "産": "产",
1351 | "甦": "苏",
1352 | "甯": "宁",
1353 | "畝": "亩",
1354 | "畢": "毕",
1355 | "畫": "画",
1356 | "異": "异",
1357 | "畵": "画",
1358 | "當": "当",
1359 | "畼": "𪽈",
1360 | "疇": "畴",
1361 | "疊": "叠",
1362 | "痙": "痉",
1363 | "痠": "酸",
1364 | "痮": "𪽪",
1365 | "痾": "疴",
1366 | "瘂": "痖",
1367 | "瘋": "疯",
1368 | "瘍": "疡",
1369 | "瘓": "痪",
1370 | "瘞": "瘗",
1371 | "瘡": "疮",
1372 | "瘧": "疟",
1373 | "瘮": "瘆",
1374 | "瘱": "𪽷",
1375 | "瘲": "疭",
1376 | "瘺": "瘘",
1377 | "瘻": "瘘",
1378 | "療": "疗",
1379 | "癆": "痨",
1380 | "癇": "痫",
1381 | "癉": "瘅",
1382 | "癐": "𤶊",
1383 | "癒": "愈",
1384 | "癘": "疠",
1385 | "癟": "瘪",
1386 | "癡": "痴",
1387 | "癢": "痒",
1388 | "癤": "疖",
1389 | "癥": "症",
1390 | "癧": "疬",
1391 | "癩": "癞",
1392 | "癬": "癣",
1393 | "癭": "瘿",
1394 | "癮": "瘾",
1395 | "癰": "痈",
1396 | "癱": "瘫",
1397 | "癲": "癫",
1398 | "發": "发",
1399 | "皁": "皂",
1400 | "皚": "皑",
1401 | "皟": "𤾀",
1402 | "皰": "疱",
1403 | "皸": "皲",
1404 | "皺": "皱",
1405 | "盃": "杯",
1406 | "盜": "盗",
1407 | "盞": "盏",
1408 | "盡": "尽",
1409 | "監": "监",
1410 | "盤": "盘",
1411 | "盧": "卢",
1412 | "盨": "𪾔",
1413 | "盪": "荡",
1414 | "眝": "𪾣",
1415 | "眞": "真",
1416 | "眥": "眦",
1417 | "眾": "众",
1418 | "睍": "𪾢",
1419 | "睏": "困",
1420 | "睜": "睁",
1421 | "睞": "睐",
1422 | "瞘": "眍",
1423 | "瞜": "䁖",
1424 | "瞞": "瞒",
1425 | "瞤": "𥆧",
1426 | "瞭": "瞭",
1427 | "瞶": "瞆",
1428 | "瞼": "睑",
1429 | "矇": "蒙",
1430 | "矉": "𪾸",
1431 | "矑": "𪾦",
1432 | "矓": "眬",
1433 | "矚": "瞩",
1434 | "矯": "矫",
1435 | "硃": "朱",
1436 | "硜": "硁",
1437 | "硤": "硖",
1438 | "硨": "砗",
1439 | "硯": "砚",
1440 | "碕": "埼",
1441 | "碙": "𥐻",
1442 | "碩": "硕",
1443 | "碭": "砀",
1444 | "碸": "砜",
1445 | "確": "确",
1446 | "碼": "码",
1447 | "碽": "䂵",
1448 | "磑": "硙",
1449 | "磚": "砖",
1450 | "磠": "硵",
1451 | "磣": "碜",
1452 | "磧": "碛",
1453 | "磯": "矶",
1454 | "磽": "硗",
1455 | "磾": "䃅",
1456 | "礄": "硚",
1457 | "礆": "硷",
1458 | "礎": "础",
1459 | "礐": "𬒈",
1460 | "礒": "𥐟",
1461 | "礙": "碍",
1462 | "礦": "矿",
1463 | "礪": "砺",
1464 | "礫": "砾",
1465 | "礬": "矾",
1466 | "礮": "𪿫",
1467 | "礱": "砻",
1468 | "祇": "祇",
1469 | "祕": "秘",
1470 | "祿": "禄",
1471 | "禍": "祸",
1472 | "禎": "祯",
1473 | "禕": "祎",
1474 | "禡": "祃",
1475 | "禦": "御",
1476 | "禪": "禅",
1477 | "禮": "礼",
1478 | "禰": "祢",
1479 | "禱": "祷",
1480 | "禿": "秃",
1481 | "秈": "籼",
1482 | "稅": "税",
1483 | "稈": "秆",
1484 | "稏": "䅉",
1485 | "稜": "棱",
1486 | "稟": "禀",
1487 | "種": "种",
1488 | "稱": "称",
1489 | "穀": "谷",
1490 | "穇": "䅟",
1491 | "穌": "稣",
1492 | "積": "积",
1493 | "穎": "颖",
1494 | "穠": "秾",
1495 | "穡": "穑",
1496 | "穢": "秽",
1497 | "穩": "稳",
1498 | "穫": "获",
1499 | "穭": "穞",
1500 | "窩": "窝",
1501 | "窪": "洼",
1502 | "窮": "穷",
1503 | "窯": "窑",
1504 | "窵": "窎",
1505 | "窶": "窭",
1506 | "窺": "窥",
1507 | "竄": "窜",
1508 | "竅": "窍",
1509 | "竇": "窦",
1510 | "竈": "灶",
1511 | "竊": "窃",
1512 | "竚": "𥩟",
1513 | "竪": "竖",
1514 | "竱": "𫁟",
1515 | "競": "竞",
1516 | "筆": "笔",
1517 | "筍": "笋",
1518 | "筧": "笕",
1519 | "筴": "䇲",
1520 | "箇": "个",
1521 | "箋": "笺",
1522 | "箏": "筝",
1523 | "節": "节",
1524 | "範": "范",
1525 | "築": "筑",
1526 | "篋": "箧",
1527 | "篔": "筼",
1528 | "篘": "𥬠",
1529 | "篠": "筿",
1530 | "篢": "𬕂",
1531 | "篤": "笃",
1532 | "篩": "筛",
1533 | "篳": "筚",
1534 | "篸": "𥮾",
1535 | "簀": "箦",
1536 | "簂": "𫂆",
1537 | "簍": "篓",
1538 | "簑": "蓑",
1539 | "簞": "箪",
1540 | "簡": "简",
1541 | "簢": "𫂃",
1542 | "簣": "篑",
1543 | "簫": "箫",
1544 | "簹": "筜",
1545 | "簽": "签",
1546 | "簾": "帘",
1547 | "籃": "篮",
1548 | "籅": "𥫣",
1549 | "籋": "𥬞",
1550 | "籌": "筹",
1551 | "籔": "䉤",
1552 | "籙": "箓",
1553 | "籛": "篯",
1554 | "籜": "箨",
1555 | "籟": "籁",
1556 | "籠": "笼",
1557 | "籤": "签",
1558 | "籩": "笾",
1559 | "籪": "簖",
1560 | "籬": "篱",
1561 | "籮": "箩",
1562 | "籲": "吁",
1563 | "粵": "粤",
1564 | "糉": "粽",
1565 | "糝": "糁",
1566 | "糞": "粪",
1567 | "糧": "粮",
1568 | "糰": "团",
1569 | "糲": "粝",
1570 | "糴": "籴",
1571 | "糶": "粜",
1572 | "糹": "纟",
1573 | "糺": "𫄙",
1574 | "糾": "纠",
1575 | "紀": "纪",
1576 | "紂": "纣",
1577 | "紃": "𬘓",
1578 | "約": "约",
1579 | "紅": "红",
1580 | "紆": "纡",
1581 | "紇": "纥",
1582 | "紈": "纨",
1583 | "紉": "纫",
1584 | "紋": "纹",
1585 | "納": "纳",
1586 | "紐": "纽",
1587 | "紓": "纾",
1588 | "純": "纯",
1589 | "紕": "纰",
1590 | "紖": "纼",
1591 | "紗": "纱",
1592 | "紘": "纮",
1593 | "紙": "纸",
1594 | "級": "级",
1595 | "紛": "纷",
1596 | "紜": "纭",
1597 | "紝": "纴",
1598 | "紞": "𬘘",
1599 | "紟": "𫄛",
1600 | "紡": "纺",
1601 | "紬": "䌷",
1602 | "紮": "扎",
1603 | "細": "细",
1604 | "紱": "绂",
1605 | "紲": "绁",
1606 | "紳": "绅",
1607 | "紵": "纻",
1608 | "紹": "绍",
1609 | "紺": "绀",
1610 | "紼": "绋",
1611 | "紿": "绐",
1612 | "絀": "绌",
1613 | "絁": "𫄟",
1614 | "終": "终",
1615 | "絃": "弦",
1616 | "組": "组",
1617 | "絅": "䌹",
1618 | "絆": "绊",
1619 | "絍": "𫟃",
1620 | "絎": "绗",
1621 | "結": "结",
1622 | "絕": "绝",
1623 | "絙": "𫄠",
1624 | "絛": "绦",
1625 | "絝": "绔",
1626 | "絞": "绞",
1627 | "絡": "络",
1628 | "絢": "绚",
1629 | "絥": "𫄢",
1630 | "給": "给",
1631 | "絧": "𫄡",
1632 | "絨": "绒",
1633 | "絪": "𬘡",
1634 | "絰": "绖",
1635 | "統": "统",
1636 | "絲": "丝",
1637 | "絳": "绛",
1638 | "絶": "绝",
1639 | "絹": "绢",
1640 | "絺": "𫄨",
1641 | "綀": "𦈌",
1642 | "綁": "绑",
1643 | "綃": "绡",
1644 | "綄": "𬘫",
1645 | "綆": "绠",
1646 | "綇": "𦈋",
1647 | "綈": "绨",
1648 | "綉": "绣",
1649 | "綋": "𫟄",
1650 | "綌": "绤",
1651 | "綎": "𬘩",
1652 | "綏": "绥",
1653 | "綐": "䌼",
1654 | "綑": "捆",
1655 | "經": "经",
1656 | "綖": "𫄧",
1657 | "綜": "综",
1658 | "綝": "𬘭",
1659 | "綞": "缍",
1660 | "綟": "𫄫",
1661 | "綠": "绿",
1662 | "綡": "𫟅",
1663 | "綢": "绸",
1664 | "綣": "绻",
1665 | "綧": "𬘯",
1666 | "綪": "𬘬",
1667 | "綫": "线",
1668 | "綬": "绶",
1669 | "維": "维",
1670 | "綯": "绹",
1671 | "綰": "绾",
1672 | "綱": "纲",
1673 | "網": "网",
1674 | "綳": "绷",
1675 | "綴": "缀",
1676 | "綵": "彩",
1677 | "綸": "纶",
1678 | "綹": "绺",
1679 | "綺": "绮",
1680 | "綻": "绽",
1681 | "綽": "绰",
1682 | "綾": "绫",
1683 | "綿": "绵",
1684 | "緄": "绲",
1685 | "緇": "缁",
1686 | "緊": "紧",
1687 | "緋": "绯",
1688 | "緍": "𦈏",
1689 | "緑": "绿",
1690 | "緒": "绪",
1691 | "緓": "绬",
1692 | "緔": "绱",
1693 | "緗": "缃",
1694 | "緘": "缄",
1695 | "緙": "缂",
1696 | "線": "线",
1697 | "緝": "缉",
1698 | "緞": "缎",
1699 | "緟": "𫟆",
1700 | "締": "缔",
1701 | "緡": "缗",
1702 | "緣": "缘",
1703 | "緤": "𫄬",
1704 | "緦": "缌",
1705 | "編": "编",
1706 | "緩": "缓",
1707 | "緬": "缅",
1708 | "緮": "𫄭",
1709 | "緯": "纬",
1710 | "緰": "𦈕",
1711 | "緱": "缑",
1712 | "緲": "缈",
1713 | "練": "练",
1714 | "緶": "缏",
1715 | "緷": "𦈉",
1716 | "緸": "𦈑",
1717 | "緹": "缇",
1718 | "緻": "致",
1719 | "緼": "缊",
1720 | "縈": "萦",
1721 | "縉": "缙",
1722 | "縊": "缢",
1723 | "縋": "缒",
1724 | "縍": "𫄰",
1725 | "縎": "𦈔",
1726 | "縐": "绉",
1727 | "縑": "缣",
1728 | "縕": "缊",
1729 | "縗": "缞",
1730 | "縛": "缚",
1731 | "縝": "缜",
1732 | "縞": "缟",
1733 | "縟": "缛",
1734 | "縣": "县",
1735 | "縧": "绦",
1736 | "縫": "缝",
1737 | "縬": "𦈚",
1738 | "縭": "缡",
1739 | "縮": "缩",
1740 | "縯": "𬙂",
1741 | "縰": "𫄳",
1742 | "縱": "纵",
1743 | "縲": "缧",
1744 | "縳": "䌸",
1745 | "縴": "纤",
1746 | "縵": "缦",
1747 | "縶": "絷",
1748 | "縷": "缕",
1749 | "縸": "𫄲",
1750 | "縹": "缥",
1751 | "縺": "𦈐",
1752 | "總": "总",
1753 | "績": "绩",
1754 | "繂": "𫄴",
1755 | "繃": "绷",
1756 | "繅": "缫",
1757 | "繆": "缪",
1758 | "繈": "𫄶",
1759 | "繏": "𦈝",
1760 | "繐": "𰬸",
1761 | "繒": "缯",
1762 | "繓": "𦈛",
1763 | "織": "织",
1764 | "繕": "缮",
1765 | "繚": "缭",
1766 | "繞": "绕",
1767 | "繟": "𦈎",
1768 | "繡": "绣",
1769 | "繢": "缋",
1770 | "繨": "𫄤",
1771 | "繩": "绳",
1772 | "繪": "绘",
1773 | "繫": "系",
1774 | "繬": "𫄱",
1775 | "繭": "茧",
1776 | "繮": "缰",
1777 | "繯": "缳",
1778 | "繰": "缲",
1779 | "繳": "缴",
1780 | "繶": "𫄷",
1781 | "繷": "𫄣",
1782 | "繸": "䍁",
1783 | "繹": "绎",
1784 | "繻": "𦈡",
1785 | "繼": "继",
1786 | "繽": "缤",
1787 | "繾": "缱",
1788 | "繿": "䍀",
1789 | "纁": "𫄸",
1790 | "纆": "𬙊",
1791 | "纇": "颣",
1792 | "纈": "缬",
1793 | "纊": "纩",
1794 | "續": "续",
1795 | "纍": "累",
1796 | "纏": "缠",
1797 | "纓": "缨",
1798 | "纔": "才",
1799 | "纕": "𬙋",
1800 | "纖": "纤",
1801 | "纗": "𫄹",
1802 | "纘": "缵",
1803 | "纚": "𫄥",
1804 | "纜": "缆",
1805 | "缽": "钵",
1806 | "罃": "䓨",
1807 | "罈": "坛",
1808 | "罌": "罂",
1809 | "罎": "坛",
1810 | "罰": "罚",
1811 | "罵": "骂",
1812 | "罷": "罢",
1813 | "羅": "罗",
1814 | "羆": "罴",
1815 | "羈": "羁",
1816 | "羋": "芈",
1817 | "羣": "群",
1818 | "羥": "羟",
1819 | "羨": "羡",
1820 | "義": "义",
1821 | "羵": "𫅗",
1822 | "羶": "膻",
1823 | "習": "习",
1824 | "翫": "玩",
1825 | "翬": "翚",
1826 | "翹": "翘",
1827 | "翽": "翙",
1828 | "耬": "耧",
1829 | "耮": "耢",
1830 | "聖": "圣",
1831 | "聞": "闻",
1832 | "聯": "联",
1833 | "聰": "聪",
1834 | "聲": "声",
1835 | "聳": "耸",
1836 | "聵": "聩",
1837 | "聶": "聂",
1838 | "職": "职",
1839 | "聹": "聍",
1840 | "聻": "𫆏",
1841 | "聽": "听",
1842 | "聾": "聋",
1843 | "肅": "肃",
1844 | "脅": "胁",
1845 | "脈": "脉",
1846 | "脛": "胫",
1847 | "脣": "唇",
1848 | "脥": "𣍰",
1849 | "脩": "修",
1850 | "脫": "脱",
1851 | "脹": "胀",
1852 | "腎": "肾",
1853 | "腖": "胨",
1854 | "腡": "脶",
1855 | "腦": "脑",
1856 | "腪": "𣍯",
1857 | "腫": "肿",
1858 | "腳": "脚",
1859 | "腸": "肠",
1860 | "膃": "腽",
1861 | "膕": "腘",
1862 | "膚": "肤",
1863 | "膞": "䏝",
1864 | "膠": "胶",
1865 | "膢": "𦝼",
1866 | "膩": "腻",
1867 | "膹": "𪱥",
1868 | "膽": "胆",
1869 | "膾": "脍",
1870 | "膿": "脓",
1871 | "臉": "脸",
1872 | "臍": "脐",
1873 | "臏": "膑",
1874 | "臗": "𣎑",
1875 | "臘": "腊",
1876 | "臚": "胪",
1877 | "臟": "脏",
1878 | "臠": "脔",
1879 | "臢": "臜",
1880 | "臥": "卧",
1881 | "臨": "临",
1882 | "臺": "台",
1883 | "與": "与",
1884 | "興": "兴",
1885 | "舉": "举",
1886 | "舊": "旧",
1887 | "舘": "馆",
1888 | "艙": "舱",
1889 | "艣": "𫇛",
1890 | "艤": "舣",
1891 | "艦": "舰",
1892 | "艫": "舻",
1893 | "艱": "艰",
1894 | "艷": "艳",
1895 | "芻": "刍",
1896 | "苧": "苎",
1897 | "茲": "兹",
1898 | "荊": "荆",
1899 | "莊": "庄",
1900 | "莖": "茎",
1901 | "莢": "荚",
1902 | "莧": "苋",
1903 | "菕": "𰰨",
1904 | "華": "华",
1905 | "菴": "庵",
1906 | "菸": "烟",
1907 | "萇": "苌",
1908 | "萊": "莱",
1909 | "萬": "万",
1910 | "萴": "荝",
1911 | "萵": "莴",
1912 | "葉": "叶",
1913 | "葒": "荭",
1914 | "葝": "𫈎",
1915 | "葤": "荮",
1916 | "葦": "苇",
1917 | "葯": "药",
1918 | "葷": "荤",
1919 | "蒍": "𫇭",
1920 | "蒐": "搜",
1921 | "蒓": "莼",
1922 | "蒔": "莳",
1923 | "蒕": "蒀",
1924 | "蒞": "莅",
1925 | "蒭": "𫇴",
1926 | "蒼": "苍",
1927 | "蓀": "荪",
1928 | "蓆": "席",
1929 | "蓋": "盖",
1930 | "蓧": "𦰏",
1931 | "蓮": "莲",
1932 | "蓯": "苁",
1933 | "蓴": "莼",
1934 | "蓽": "荜",
1935 | "蔄": "𬜬",
1936 | "蔔": "卜",
1937 | "蔘": "参",
1938 | "蔞": "蒌",
1939 | "蔣": "蒋",
1940 | "蔥": "葱",
1941 | "蔦": "茑",
1942 | "蔭": "荫",
1943 | "蔯": "𫈟",
1944 | "蔿": "𫇭",
1945 | "蕁": "荨",
1946 | "蕆": "蒇",
1947 | "蕎": "荞",
1948 | "蕒": "荬",
1949 | "蕓": "芸",
1950 | "蕕": "莸",
1951 | "蕘": "荛",
1952 | "蕝": "𫈵",
1953 | "蕢": "蒉",
1954 | "蕩": "荡",
1955 | "蕪": "芜",
1956 | "蕭": "萧",
1957 | "蕳": "𫈉",
1958 | "蕷": "蓣",
1959 | "蕽": "𫇽",
1960 | "薀": "蕰",
1961 | "薆": "𫉁",
1962 | "薈": "荟",
1963 | "薊": "蓟",
1964 | "薌": "芗",
1965 | "薑": "姜",
1966 | "薔": "蔷",
1967 | "薘": "荙",
1968 | "薟": "莶",
1969 | "薦": "荐",
1970 | "薩": "萨",
1971 | "薳": "䓕",
1972 | "薴": "苧",
1973 | "薵": "䓓",
1974 | "薹": "苔",
1975 | "薺": "荠",
1976 | "藉": "藉",
1977 | "藍": "蓝",
1978 | "藎": "荩",
1979 | "藝": "艺",
1980 | "藥": "药",
1981 | "藪": "薮",
1982 | "藭": "䓖",
1983 | "藴": "蕴",
1984 | "藶": "苈",
1985 | "藷": "𫉄",
1986 | "藹": "蔼",
1987 | "藺": "蔺",
1988 | "蘀": "萚",
1989 | "蘄": "蕲",
1990 | "蘆": "芦",
1991 | "蘇": "苏",
1992 | "蘊": "蕴",
1993 | "蘋": "苹",
1994 | "蘚": "藓",
1995 | "蘞": "蔹",
1996 | "蘟": "𦻕",
1997 | "蘢": "茏",
1998 | "蘭": "兰",
1999 | "蘺": "蓠",
2000 | "蘿": "萝",
2001 | "虆": "蔂",
2002 | "虉": "𬟁",
2003 | "處": "处",
2004 | "虛": "虚",
2005 | "虜": "虏",
2006 | "號": "号",
2007 | "虧": "亏",
2008 | "虯": "虬",
2009 | "蛺": "蛱",
2010 | "蛻": "蜕",
2011 | "蜆": "蚬",
2012 | "蝀": "𬟽",
2013 | "蝕": "蚀",
2014 | "蝟": "猬",
2015 | "蝦": "虾",
2016 | "蝨": "虱",
2017 | "蝸": "蜗",
2018 | "螄": "蛳",
2019 | "螞": "蚂",
2020 | "螢": "萤",
2021 | "螮": "䗖",
2022 | "螻": "蝼",
2023 | "螿": "螀",
2024 | "蟂": "𫋇",
2025 | "蟄": "蛰",
2026 | "蟈": "蝈",
2027 | "蟎": "螨",
2028 | "蟘": "𫋌",
2029 | "蟜": "𫊸",
2030 | "蟣": "虮",
2031 | "蟬": "蝉",
2032 | "蟯": "蛲",
2033 | "蟲": "虫",
2034 | "蟳": "𫊻",
2035 | "蟶": "蛏",
2036 | "蟻": "蚁",
2037 | "蠀": "𧏗",
2038 | "蠁": "蚃",
2039 | "蠅": "蝇",
2040 | "蠆": "虿",
2041 | "蠍": "蝎",
2042 | "蠐": "蛴",
2043 | "蠑": "蝾",
2044 | "蠔": "蚝",
2045 | "蠙": "𧏖",
2046 | "蠟": "蜡",
2047 | "蠣": "蛎",
2048 | "蠦": "𫊮",
2049 | "蠨": "蟏",
2050 | "蠱": "蛊",
2051 | "蠶": "蚕",
2052 | "蠻": "蛮",
2053 | "蠾": "𧑏",
2054 | "衆": "众",
2055 | "衊": "蔑",
2056 | "術": "术",
2057 | "衕": "同",
2058 | "衚": "胡",
2059 | "衛": "卫",
2060 | "衝": "冲",
2061 | "衹": "衹",
2062 | "袞": "衮",
2063 | "裊": "袅",
2064 | "裏": "里",
2065 | "補": "补",
2066 | "裝": "装",
2067 | "裡": "里",
2068 | "製": "制",
2069 | "複": "复",
2070 | "褌": "裈",
2071 | "褘": "袆",
2072 | "褲": "裤",
2073 | "褳": "裢",
2074 | "褸": "褛",
2075 | "褻": "亵",
2076 | "襀": "𫌀",
2077 | "襇": "裥",
2078 | "襉": "裥",
2079 | "襏": "袯",
2080 | "襓": "𫋹",
2081 | "襖": "袄",
2082 | "襗": "𫋷",
2083 | "襘": "𫋻",
2084 | "襝": "裣",
2085 | "襠": "裆",
2086 | "襤": "褴",
2087 | "襪": "袜",
2088 | "襬": "摆",
2089 | "襯": "衬",
2090 | "襰": "𧝝",
2091 | "襲": "袭",
2092 | "襴": "襕",
2093 | "襵": "𫌇",
2094 | "覆": "覆",
2095 | "覈": "核",
2096 | "見": "见",
2097 | "覎": "觃",
2098 | "規": "规",
2099 | "覓": "觅",
2100 | "視": "视",
2101 | "覘": "觇",
2102 | "覛": "𫌪",
2103 | "覡": "觋",
2104 | "覥": "觍",
2105 | "覦": "觎",
2106 | "親": "亲",
2107 | "覬": "觊",
2108 | "覯": "觏",
2109 | "覲": "觐",
2110 | "覷": "觑",
2111 | "覹": "𫌭",
2112 | "覺": "觉",
2113 | "覼": "𫌨",
2114 | "覽": "览",
2115 | "覿": "觌",
2116 | "觀": "观",
2117 | "觴": "觞",
2118 | "觶": "觯",
2119 | "觸": "触",
2120 | "訁": "讠",
2121 | "訂": "订",
2122 | "訃": "讣",
2123 | "計": "计",
2124 | "訊": "讯",
2125 | "訌": "讧",
2126 | "討": "讨",
2127 | "訏": "𬣙",
2128 | "訐": "讦",
2129 | "訑": "𫍙",
2130 | "訒": "讱",
2131 | "訓": "训",
2132 | "訕": "讪",
2133 | "訖": "讫",
2134 | "託": "托",
2135 | "記": "记",
2136 | "訛": "讹",
2137 | "訜": "𫍛",
2138 | "訝": "讶",
2139 | "訞": "𫍚",
2140 | "訟": "讼",
2141 | "訢": "䜣",
2142 | "訣": "诀",
2143 | "訥": "讷",
2144 | "訨": "𫟞",
2145 | "訩": "讻",
2146 | "訪": "访",
2147 | "設": "设",
2148 | "許": "许",
2149 | "訴": "诉",
2150 | "訶": "诃",
2151 | "診": "诊",
2152 | "註": "注",
2153 | "証": "证",
2154 | "詀": "𧮪",
2155 | "詁": "诂",
2156 | "詆": "诋",
2157 | "詊": "𫟟",
2158 | "詎": "讵",
2159 | "詐": "诈",
2160 | "詑": "𫍡",
2161 | "詒": "诒",
2162 | "詓": "𫍜",
2163 | "詔": "诏",
2164 | "評": "评",
2165 | "詖": "诐",
2166 | "詗": "诇",
2167 | "詘": "诎",
2168 | "詛": "诅",
2169 | "詝": "𬣞",
2170 | "詞": "词",
2171 | "詠": "咏",
2172 | "詡": "诩",
2173 | "詢": "询",
2174 | "詣": "诣",
2175 | "試": "试",
2176 | "詩": "诗",
2177 | "詪": "𬣳",
2178 | "詫": "诧",
2179 | "詬": "诟",
2180 | "詭": "诡",
2181 | "詮": "诠",
2182 | "詰": "诘",
2183 | "話": "话",
2184 | "該": "该",
2185 | "詳": "详",
2186 | "詵": "诜",
2187 | "詷": "𫍣",
2188 | "詼": "诙",
2189 | "詿": "诖",
2190 | "誂": "𫍥",
2191 | "誄": "诔",
2192 | "誅": "诛",
2193 | "誆": "诓",
2194 | "誇": "夸",
2195 | "誋": "𫍪",
2196 | "誌": "志",
2197 | "認": "认",
2198 | "誑": "诳",
2199 | "誒": "诶",
2200 | "誕": "诞",
2201 | "誘": "诱",
2202 | "誚": "诮",
2203 | "語": "语",
2204 | "誠": "诚",
2205 | "誡": "诫",
2206 | "誣": "诬",
2207 | "誤": "误",
2208 | "誥": "诰",
2209 | "誦": "诵",
2210 | "誨": "诲",
2211 | "說": "说",
2212 | "誫": "𫍨",
2213 | "説": "说",
2214 | "誰": "谁",
2215 | "課": "课",
2216 | "誳": "𫍮",
2217 | "誴": "𫟡",
2218 | "誶": "谇",
2219 | "誷": "𫍬",
2220 | "誹": "诽",
2221 | "誺": "𫍧",
2222 | "誼": "谊",
2223 | "誾": "訚",
2224 | "調": "调",
2225 | "諂": "谄",
2226 | "諄": "谆",
2227 | "談": "谈",
2228 | "諉": "诿",
2229 | "請": "请",
2230 | "諍": "诤",
2231 | "諏": "诹",
2232 | "諑": "诼",
2233 | "諒": "谅",
2234 | "諓": "𬣡",
2235 | "論": "论",
2236 | "諗": "谂",
2237 | "諛": "谀",
2238 | "諜": "谍",
2239 | "諝": "谞",
2240 | "諞": "谝",
2241 | "諟": "𬤊",
2242 | "諡": "谥",
2243 | "諢": "诨",
2244 | "諣": "𫍩",
2245 | "諤": "谔",
2246 | "諥": "𫍳",
2247 | "諦": "谛",
2248 | "諧": "谐",
2249 | "諫": "谏",
2250 | "諭": "谕",
2251 | "諮": "咨",
2252 | "諯": "𫍱",
2253 | "諰": "𫍰",
2254 | "諱": "讳",
2255 | "諲": "𬤇",
2256 | "諳": "谙",
2257 | "諴": "𫍯",
2258 | "諶": "谌",
2259 | "諷": "讽",
2260 | "諸": "诸",
2261 | "諺": "谚",
2262 | "諼": "谖",
2263 | "諾": "诺",
2264 | "謀": "谋",
2265 | "謁": "谒",
2266 | "謂": "谓",
2267 | "謄": "誊",
2268 | "謅": "诌",
2269 | "謆": "𫍸",
2270 | "謉": "𫍷",
2271 | "謊": "谎",
2272 | "謎": "谜",
2273 | "謏": "𫍲",
2274 | "謐": "谧",
2275 | "謔": "谑",
2276 | "謖": "谡",
2277 | "謗": "谤",
2278 | "謙": "谦",
2279 | "謚": "谥",
2280 | "講": "讲",
2281 | "謝": "谢",
2282 | "謠": "谣",
2283 | "謡": "谣",
2284 | "謨": "谟",
2285 | "謫": "谪",
2286 | "謬": "谬",
2287 | "謭": "谫",
2288 | "謯": "𫍹",
2289 | "謱": "𫍴",
2290 | "謳": "讴",
2291 | "謸": "𫍵",
2292 | "謹": "谨",
2293 | "謾": "谩",
2294 | "譁": "哗",
2295 | "譂": "𫟠",
2296 | "譅": "𰶎",
2297 | "譆": "𫍻",
2298 | "證": "证",
2299 | "譊": "𫍢",
2300 | "譎": "谲",
2301 | "譏": "讥",
2302 | "譑": "𫍤",
2303 | "譓": "𬤝",
2304 | "譖": "谮",
2305 | "識": "识",
2306 | "譙": "谯",
2307 | "譚": "谭",
2308 | "譜": "谱",
2309 | "譞": "𫍽",
2310 | "譟": "噪",
2311 | "譨": "𫍦",
2312 | "譫": "谵",
2313 | "譭": "毁",
2314 | "譯": "译",
2315 | "議": "议",
2316 | "譴": "谴",
2317 | "護": "护",
2318 | "譸": "诪",
2319 | "譽": "誉",
2320 | "譾": "谫",
2321 | "讀": "读",
2322 | "讅": "谉",
2323 | "變": "变",
2324 | "讋": "詟",
2325 | "讌": "䜩",
2326 | "讎": "雠",
2327 | "讒": "谗",
2328 | "讓": "让",
2329 | "讕": "谰",
2330 | "讖": "谶",
2331 | "讚": "赞",
2332 | "讜": "谠",
2333 | "讞": "谳",
2334 | "豈": "岂",
2335 | "豎": "竖",
2336 | "豐": "丰",
2337 | "豔": "艳",
2338 | "豬": "猪",
2339 | "豵": "𫎆",
2340 | "豶": "豮",
2341 | "貓": "猫",
2342 | "貗": "𫎌",
2343 | "貙": "䝙",
2344 | "貝": "贝",
2345 | "貞": "贞",
2346 | "貟": "贠",
2347 | "負": "负",
2348 | "財": "财",
2349 | "貢": "贡",
2350 | "貧": "贫",
2351 | "貨": "货",
2352 | "販": "贩",
2353 | "貪": "贪",
2354 | "貫": "贯",
2355 | "責": "责",
2356 | "貯": "贮",
2357 | "貰": "贳",
2358 | "貲": "赀",
2359 | "貳": "贰",
2360 | "貴": "贵",
2361 | "貶": "贬",
2362 | "買": "买",
2363 | "貸": "贷",
2364 | "貺": "贶",
2365 | "費": "费",
2366 | "貼": "贴",
2367 | "貽": "贻",
2368 | "貿": "贸",
2369 | "賀": "贺",
2370 | "賁": "贲",
2371 | "賂": "赂",
2372 | "賃": "赁",
2373 | "賄": "贿",
2374 | "賅": "赅",
2375 | "資": "资",
2376 | "賈": "贾",
2377 | "賊": "贼",
2378 | "賑": "赈",
2379 | "賒": "赊",
2380 | "賓": "宾",
2381 | "賕": "赇",
2382 | "賙": "赒",
2383 | "賚": "赉",
2384 | "賜": "赐",
2385 | "賝": "𫎩",
2386 | "賞": "赏",
2387 | "賟": "𧹖",
2388 | "賠": "赔",
2389 | "賡": "赓",
2390 | "賢": "贤",
2391 | "賣": "卖",
2392 | "賤": "贱",
2393 | "賦": "赋",
2394 | "賧": "赕",
2395 | "質": "质",
2396 | "賫": "赍",
2397 | "賬": "账",
2398 | "賭": "赌",
2399 | "賰": "䞐",
2400 | "賴": "赖",
2401 | "賵": "赗",
2402 | "賺": "赚",
2403 | "賻": "赙",
2404 | "購": "购",
2405 | "賽": "赛",
2406 | "賾": "赜",
2407 | "贃": "𧹗",
2408 | "贄": "贽",
2409 | "贅": "赘",
2410 | "贇": "赟",
2411 | "贈": "赠",
2412 | "贉": "𫎫",
2413 | "贊": "赞",
2414 | "贋": "赝",
2415 | "贍": "赡",
2416 | "贏": "赢",
2417 | "贐": "赆",
2418 | "贑": "𫎬",
2419 | "贓": "赃",
2420 | "贔": "赑",
2421 | "贖": "赎",
2422 | "贗": "赝",
2423 | "贚": "𫎦",
2424 | "贛": "赣",
2425 | "贜": "赃",
2426 | "赬": "赪",
2427 | "趕": "赶",
2428 | "趙": "赵",
2429 | "趨": "趋",
2430 | "趲": "趱",
2431 | "跡": "迹",
2432 | "踐": "践",
2433 | "踰": "逾",
2434 | "踴": "踊",
2435 | "蹌": "跄",
2436 | "蹔": "𫏐",
2437 | "蹕": "跸",
2438 | "蹟": "迹",
2439 | "蹠": "跖",
2440 | "蹣": "蹒",
2441 | "蹤": "踪",
2442 | "蹳": "𫏆",
2443 | "蹺": "跷",
2444 | "蹻": "𫏋",
2445 | "躂": "跶",
2446 | "躉": "趸",
2447 | "躊": "踌",
2448 | "躋": "跻",
2449 | "躍": "跃",
2450 | "躎": "䟢",
2451 | "躑": "踯",
2452 | "躒": "跞",
2453 | "躓": "踬",
2454 | "躕": "蹰",
2455 | "躘": "𨀁",
2456 | "躚": "跹",
2457 | "躝": "𨅬",
2458 | "躡": "蹑",
2459 | "躥": "蹿",
2460 | "躦": "躜",
2461 | "躪": "躏",
2462 | "軀": "躯",
2463 | "軉": "𨉗",
2464 | "車": "车",
2465 | "軋": "轧",
2466 | "軌": "轨",
2467 | "軍": "军",
2468 | "軏": "𫐄",
2469 | "軑": "轪",
2470 | "軒": "轩",
2471 | "軔": "轫",
2472 | "軕": "𫐅",
2473 | "軗": "𨐅",
2474 | "軛": "轭",
2475 | "軜": "𫐇",
2476 | "軝": "𬨂",
2477 | "軟": "软",
2478 | "軤": "轷",
2479 | "軨": "𫐉",
2480 | "軫": "轸",
2481 | "軬": "𫐊",
2482 | "軲": "轱",
2483 | "軷": "𫐈",
2484 | "軸": "轴",
2485 | "軹": "轵",
2486 | "軺": "轺",
2487 | "軻": "轲",
2488 | "軼": "轶",
2489 | "軾": "轼",
2490 | "軿": "𫐌",
2491 | "較": "较",
2492 | "輄": "𨐈",
2493 | "輅": "辂",
2494 | "輇": "辁",
2495 | "輈": "辀",
2496 | "載": "载",
2497 | "輊": "轾",
2498 | "輋": "𪨶",
2499 | "輒": "辄",
2500 | "輓": "挽",
2501 | "輔": "辅",
2502 | "輕": "轻",
2503 | "輖": "𫐏",
2504 | "輗": "𫐐",
2505 | "輛": "辆",
2506 | "輜": "辎",
2507 | "輝": "辉",
2508 | "輞": "辋",
2509 | "輟": "辍",
2510 | "輢": "𫐎",
2511 | "輥": "辊",
2512 | "輦": "辇",
2513 | "輨": "𫐑",
2514 | "輩": "辈",
2515 | "輪": "轮",
2516 | "輬": "辌",
2517 | "輮": "𫐓",
2518 | "輯": "辑",
2519 | "輳": "辏",
2520 | "輶": "𬨎",
2521 | "輷": "𫐒",
2522 | "輸": "输",
2523 | "輻": "辐",
2524 | "輼": "辒",
2525 | "輾": "辗",
2526 | "輿": "舆",
2527 | "轀": "辒",
2528 | "轂": "毂",
2529 | "轄": "辖",
2530 | "轅": "辕",
2531 | "轆": "辘",
2532 | "轇": "𫐖",
2533 | "轉": "转",
2534 | "轊": "𫐕",
2535 | "轍": "辙",
2536 | "轎": "轿",
2537 | "轐": "𫐗",
2538 | "轔": "辚",
2539 | "轗": "𫐘",
2540 | "轟": "轰",
2541 | "轠": "𫐙",
2542 | "轡": "辔",
2543 | "轢": "轹",
2544 | "轣": "𫐆",
2545 | "轤": "轳",
2546 | "辦": "办",
2547 | "辭": "辞",
2548 | "辮": "辫",
2549 | "辯": "辩",
2550 | "農": "农",
2551 | "迴": "回",
2552 | "逕": "迳",
2553 | "這": "这",
2554 | "連": "连",
2555 | "週": "周",
2556 | "進": "进",
2557 | "遊": "游",
2558 | "運": "运",
2559 | "過": "过",
2560 | "達": "达",
2561 | "違": "违",
2562 | "遙": "遥",
2563 | "遜": "逊",
2564 | "遞": "递",
2565 | "遠": "远",
2566 | "遡": "溯",
2567 | "適": "适",
2568 | "遱": "𫐷",
2569 | "遲": "迟",
2570 | "遷": "迁",
2571 | "選": "选",
2572 | "遺": "遗",
2573 | "遼": "辽",
2574 | "邁": "迈",
2575 | "還": "还",
2576 | "邇": "迩",
2577 | "邊": "边",
2578 | "邏": "逻",
2579 | "邐": "逦",
2580 | "郟": "郏",
2581 | "郵": "邮",
2582 | "鄆": "郓",
2583 | "鄉": "乡",
2584 | "鄒": "邹",
2585 | "鄔": "邬",
2586 | "鄖": "郧",
2587 | "鄟": "𫑘",
2588 | "鄧": "邓",
2589 | "鄩": "𬩽",
2590 | "鄭": "郑",
2591 | "鄰": "邻",
2592 | "鄲": "郸",
2593 | "鄳": "𫑡",
2594 | "鄴": "邺",
2595 | "鄶": "郐",
2596 | "鄺": "邝",
2597 | "酇": "酂",
2598 | "酈": "郦",
2599 | "醃": "腌",
2600 | "醖": "酝",
2601 | "醜": "丑",
2602 | "醞": "酝",
2603 | "醟": "蒏",
2604 | "醣": "糖",
2605 | "醫": "医",
2606 | "醬": "酱",
2607 | "醱": "酦",
2608 | "醲": "𬪩",
2609 | "醶": "𫑷",
2610 | "釀": "酿",
2611 | "釁": "衅",
2612 | "釃": "酾",
2613 | "釅": "酽",
2614 | "釋": "释",
2615 | "釐": "厘",
2616 | "釒": "钅",
2617 | "釓": "钆",
2618 | "釔": "钇",
2619 | "釕": "钌",
2620 | "釗": "钊",
2621 | "釘": "钉",
2622 | "釙": "钋",
2623 | "釚": "𫟲",
2624 | "針": "针",
2625 | "釟": "𫓥",
2626 | "釣": "钓",
2627 | "釤": "钐",
2628 | "釦": "扣",
2629 | "釧": "钏",
2630 | "釨": "𫓦",
2631 | "釩": "钒",
2632 | "釲": "𫟳",
2633 | "釳": "𨰿",
2634 | "釴": "𬬩",
2635 | "釵": "钗",
2636 | "釷": "钍",
2637 | "釹": "钕",
2638 | "釺": "钎",
2639 | "釾": "䥺",
2640 | "釿": "𬬱",
2641 | "鈀": "钯",
2642 | "鈁": "钫",
2643 | "鈃": "钘",
2644 | "鈄": "钭",
2645 | "鈅": "钥",
2646 | "鈆": "𫓪",
2647 | "鈇": "𫓧",
2648 | "鈈": "钚",
2649 | "鈉": "钠",
2650 | "鈋": "𨱂",
2651 | "鈍": "钝",
2652 | "鈎": "钩",
2653 | "鈐": "钤",
2654 | "鈑": "钣",
2655 | "鈒": "钑",
2656 | "鈔": "钞",
2657 | "鈕": "钮",
2658 | "鈖": "𫟴",
2659 | "鈗": "𫟵",
2660 | "鈛": "𫓨",
2661 | "鈞": "钧",
2662 | "鈠": "𨱁",
2663 | "鈡": "钟",
2664 | "鈣": "钙",
2665 | "鈥": "钬",
2666 | "鈦": "钛",
2667 | "鈧": "钪",
2668 | "鈮": "铌",
2669 | "鈯": "𨱄",
2670 | "鈰": "铈",
2671 | "鈲": "𨱃",
2672 | "鈳": "钶",
2673 | "鈴": "铃",
2674 | "鈷": "钴",
2675 | "鈸": "钹",
2676 | "鈹": "铍",
2677 | "鈺": "钰",
2678 | "鈽": "钸",
2679 | "鈾": "铀",
2680 | "鈿": "钿",
2681 | "鉀": "钾",
2682 | "鉁": "𨱅",
2683 | "鉅": "巨",
2684 | "鉆": "钻",
2685 | "鉈": "铊",
2686 | "鉉": "铉",
2687 | "鉊": "𬬿",
2688 | "鉋": "铇",
2689 | "鉍": "铋",
2690 | "鉑": "铂",
2691 | "鉔": "𫓬",
2692 | "鉕": "钷",
2693 | "鉗": "钳",
2694 | "鉚": "铆",
2695 | "鉛": "铅",
2696 | "鉝": "𫟷",
2697 | "鉞": "钺",
2698 | "鉠": "𫓭",
2699 | "鉢": "钵",
2700 | "鉤": "钩",
2701 | "鉥": "𬬸",
2702 | "鉦": "钲",
2703 | "鉧": "𬭁",
2704 | "鉬": "钼",
2705 | "鉭": "钽",
2706 | "鉮": "𬬹",
2707 | "鉳": "锫",
2708 | "鉶": "铏",
2709 | "鉷": "𫟹",
2710 | "鉸": "铰",
2711 | "鉺": "铒",
2712 | "鉻": "铬",
2713 | "鉽": "𫟸",
2714 | "鉾": "𫓴",
2715 | "鉿": "铪",
2716 | "銀": "银",
2717 | "銁": "𫓲",
2718 | "銂": "𫟻",
2719 | "銃": "铳",
2720 | "銅": "铜",
2721 | "銈": "𫓯",
2722 | "銊": "𫓰",
2723 | "銍": "铚",
2724 | "銏": "𫟶",
2725 | "銑": "铣",
2726 | "銓": "铨",
2727 | "銖": "铢",
2728 | "銘": "铭",
2729 | "銚": "铫",
2730 | "銛": "铦",
2731 | "銜": "衔",
2732 | "銠": "铑",
2733 | "銣": "铷",
2734 | "銥": "铱",
2735 | "銦": "铟",
2736 | "銨": "铵",
2737 | "銩": "铥",
2738 | "銪": "铕",
2739 | "銫": "铯",
2740 | "銬": "铐",
2741 | "銱": "铞",
2742 | "銳": "锐",
2743 | "銶": "𨱇",
2744 | "銷": "销",
2745 | "銹": "锈",
2746 | "銻": "锑",
2747 | "銼": "锉",
2748 | "鋁": "铝",
2749 | "鋂": "𰾄",
2750 | "鋃": "锒",
2751 | "鋅": "锌",
2752 | "鋇": "钡",
2753 | "鋉": "𨱈",
2754 | "鋌": "铤",
2755 | "鋏": "铗",
2756 | "鋐": "𬭎",
2757 | "鋒": "锋",
2758 | "鋗": "𫓶",
2759 | "鋙": "铻",
2760 | "鋝": "锊",
2761 | "鋟": "锓",
2762 | "鋠": "𫓵",
2763 | "鋣": "铘",
2764 | "鋤": "锄",
2765 | "鋥": "锃",
2766 | "鋦": "锔",
2767 | "鋨": "锇",
2768 | "鋩": "铓",
2769 | "鋪": "铺",
2770 | "鋭": "锐",
2771 | "鋮": "铖",
2772 | "鋯": "锆",
2773 | "鋰": "锂",
2774 | "鋱": "铽",
2775 | "鋶": "锍",
2776 | "鋸": "锯",
2777 | "鋹": "𬬮",
2778 | "鋼": "钢",
2779 | "錀": "𬬭",
2780 | "錁": "锞",
2781 | "錂": "𨱋",
2782 | "錄": "录",
2783 | "錆": "锖",
2784 | "錇": "锫",
2785 | "錈": "锩",
2786 | "錏": "铔",
2787 | "錐": "锥",
2788 | "錒": "锕",
2789 | "錕": "锟",
2790 | "錘": "锤",
2791 | "錙": "锱",
2792 | "錚": "铮",
2793 | "錛": "锛",
2794 | "錜": "𫓻",
2795 | "錝": "𫓽",
2796 | "錞": "𬭚",
2797 | "錟": "锬",
2798 | "錠": "锭",
2799 | "錡": "锜",
2800 | "錢": "钱",
2801 | "錤": "𫓹",
2802 | "錥": "𫓾",
2803 | "錦": "锦",
2804 | "錨": "锚",
2805 | "錩": "锠",
2806 | "錫": "锡",
2807 | "錮": "锢",
2808 | "錯": "错",
2809 | "録": "录",
2810 | "錳": "锰",
2811 | "錶": "表",
2812 | "錸": "铼",
2813 | "錼": "镎",
2814 | "錽": "𫓸",
2815 | "鍀": "锝",
2816 | "鍁": "锨",
2817 | "鍃": "锪",
2818 | "鍄": "𨱉",
2819 | "鍅": "钫",
2820 | "鍆": "钔",
2821 | "鍇": "锴",
2822 | "鍈": "锳",
2823 | "鍉": "𫔂",
2824 | "鍊": "炼",
2825 | "鍋": "锅",
2826 | "鍍": "镀",
2827 | "鍒": "𫔄",
2828 | "鍔": "锷",
2829 | "鍘": "铡",
2830 | "鍚": "钖",
2831 | "鍛": "锻",
2832 | "鍠": "锽",
2833 | "鍤": "锸",
2834 | "鍥": "锲",
2835 | "鍩": "锘",
2836 | "鍬": "锹",
2837 | "鍭": "𬭤",
2838 | "鍮": "𨱎",
2839 | "鍰": "锾",
2840 | "鍵": "键",
2841 | "鍶": "锶",
2842 | "鍺": "锗",
2843 | "鍼": "针",
2844 | "鍾": "钟",
2845 | "鎂": "镁",
2846 | "鎄": "锿",
2847 | "鎇": "镅",
2848 | "鎈": "𫟿",
2849 | "鎊": "镑",
2850 | "鎌": "镰",
2851 | "鎍": "𫔅",
2852 | "鎓": "𬭩",
2853 | "鎔": "镕",
2854 | "鎖": "锁",
2855 | "鎘": "镉",
2856 | "鎙": "𫔈",
2857 | "鎚": "锤",
2858 | "鎛": "镈",
2859 | "鎝": "𨱏",
2860 | "鎞": "𫔇",
2861 | "鎡": "镃",
2862 | "鎢": "钨",
2863 | "鎣": "蓥",
2864 | "鎦": "镏",
2865 | "鎧": "铠",
2866 | "鎩": "铩",
2867 | "鎪": "锼",
2868 | "鎬": "镐",
2869 | "鎭": "镇",
2870 | "鎮": "镇",
2871 | "鎯": "𨱍",
2872 | "鎰": "镒",
2873 | "鎲": "镋",
2874 | "鎳": "镍",
2875 | "鎵": "镓",
2876 | "鎶": "鿔",
2877 | "鎷": "𨰾",
2878 | "鎸": "镌",
2879 | "鎿": "镎",
2880 | "鏃": "镞",
2881 | "鏆": "𨱌",
2882 | "鏇": "旋",
2883 | "鏈": "链",
2884 | "鏉": "𨱒",
2885 | "鏌": "镆",
2886 | "鏍": "镙",
2887 | "鏏": "𬭬",
2888 | "鏐": "镠",
2889 | "鏑": "镝",
2890 | "鏗": "铿",
2891 | "鏘": "锵",
2892 | "鏚": "𬭭",
2893 | "鏜": "镗",
2894 | "鏝": "镘",
2895 | "鏞": "镛",
2896 | "鏟": "铲",
2897 | "鏡": "镜",
2898 | "鏢": "镖",
2899 | "鏤": "镂",
2900 | "鏥": "𫔊",
2901 | "鏦": "𫓩",
2902 | "鏨": "錾",
2903 | "鏰": "镚",
2904 | "鏵": "铧",
2905 | "鏷": "镤",
2906 | "鏹": "镪",
2907 | "鏺": "䥽",
2908 | "鏻": "𬭸",
2909 | "鏽": "锈",
2910 | "鏾": "𫔌",
2911 | "鐃": "铙",
2912 | "鐄": "𨱑",
2913 | "鐇": "𫔍",
2914 | "鐈": "𫓱",
2915 | "鐋": "铴",
2916 | "鐍": "𫔎",
2917 | "鐎": "𨱓",
2918 | "鐏": "𨱔",
2919 | "鐐": "镣",
2920 | "鐒": "铹",
2921 | "鐓": "镦",
2922 | "鐔": "镡",
2923 | "鐘": "钟",
2924 | "鐙": "镫",
2925 | "鐝": "镢",
2926 | "鐠": "镨",
2927 | "鐥": "䦅",
2928 | "鐦": "锎",
2929 | "鐧": "锏",
2930 | "鐨": "镄",
2931 | "鐩": "𬭼",
2932 | "鐪": "𫓺",
2933 | "鐫": "镌",
2934 | "鐮": "镰",
2935 | "鐯": "䦃",
2936 | "鐲": "镯",
2937 | "鐳": "镭",
2938 | "鐵": "铁",
2939 | "鐶": "镮",
2940 | "鐸": "铎",
2941 | "鐺": "铛",
2942 | "鐼": "𫔁",
2943 | "鐽": "𫟼",
2944 | "鐿": "镱",
2945 | "鑀": "𰾭",
2946 | "鑄": "铸",
2947 | "鑉": "𫠁",
2948 | "鑊": "镬",
2949 | "鑌": "镔",
2950 | "鑑": "鉴",
2951 | "鑒": "鉴",
2952 | "鑔": "镲",
2953 | "鑕": "锧",
2954 | "鑞": "镴",
2955 | "鑠": "铄",
2956 | "鑣": "镳",
2957 | "鑥": "镥",
2958 | "鑪": "𬬻",
2959 | "鑭": "镧",
2960 | "鑰": "钥",
2961 | "鑱": "镵",
2962 | "鑲": "镶",
2963 | "鑴": "𫔔",
2964 | "鑷": "镊",
2965 | "鑹": "镩",
2966 | "鑼": "锣",
2967 | "鑽": "钻",
2968 | "鑾": "銮",
2969 | "鑿": "凿",
2970 | "钁": "镢",
2971 | "钂": "镋",
2972 | "長": "长",
2973 | "門": "门",
2974 | "閂": "闩",
2975 | "閃": "闪",
2976 | "閆": "闫",
2977 | "閈": "闬",
2978 | "閉": "闭",
2979 | "開": "开",
2980 | "閌": "闶",
2981 | "閍": "𨸂",
2982 | "閎": "闳",
2983 | "閏": "闰",
2984 | "閐": "𨸃",
2985 | "閑": "闲",
2986 | "閒": "闲",
2987 | "間": "间",
2988 | "閔": "闵",
2989 | "閗": "𫔯",
2990 | "閘": "闸",
2991 | "閝": "𫠂",
2992 | "閞": "𫔰",
2993 | "閡": "阂",
2994 | "閣": "阁",
2995 | "閤": "合",
2996 | "閥": "阀",
2997 | "閨": "闺",
2998 | "閩": "闽",
2999 | "閫": "阃",
3000 | "閬": "阆",
3001 | "閭": "闾",
3002 | "閱": "阅",
3003 | "閲": "阅",
3004 | "閵": "𫔴",
3005 | "閶": "阊",
3006 | "閹": "阉",
3007 | "閻": "阎",
3008 | "閼": "阏",
3009 | "閽": "阍",
3010 | "閾": "阈",
3011 | "閿": "阌",
3012 | "闃": "阒",
3013 | "闆": "板",
3014 | "闇": "暗",
3015 | "闈": "闱",
3016 | "闉": "𬮱",
3017 | "闊": "阔",
3018 | "闋": "阕",
3019 | "闌": "阑",
3020 | "闍": "阇",
3021 | "闐": "阗",
3022 | "闑": "𫔶",
3023 | "闒": "阘",
3024 | "闓": "闿",
3025 | "闔": "阖",
3026 | "闕": "阙",
3027 | "闖": "闯",
3028 | "關": "关",
3029 | "闞": "阚",
3030 | "闠": "阓",
3031 | "闡": "阐",
3032 | "闢": "辟",
3033 | "闤": "阛",
3034 | "闥": "闼",
3035 | "阪": "阪",
3036 | "陘": "陉",
3037 | "陝": "陕",
3038 | "陞": "升",
3039 | "陣": "阵",
3040 | "陰": "阴",
3041 | "陳": "陈",
3042 | "陸": "陆",
3043 | "陽": "阳",
3044 | "隉": "陧",
3045 | "隊": "队",
3046 | "階": "阶",
3047 | "隑": "𬮿",
3048 | "隕": "陨",
3049 | "際": "际",
3050 | "隤": "𬯎",
3051 | "隨": "随",
3052 | "險": "险",
3053 | "隮": "𬯀",
3054 | "隯": "陦",
3055 | "隱": "隐",
3056 | "隴": "陇",
3057 | "隸": "隶",
3058 | "隻": "只",
3059 | "雋": "隽",
3060 | "雖": "虽",
3061 | "雙": "双",
3062 | "雛": "雏",
3063 | "雜": "杂",
3064 | "雞": "鸡",
3065 | "離": "离",
3066 | "難": "难",
3067 | "雲": "云",
3068 | "電": "电",
3069 | "霑": "沾",
3070 | "霢": "霡",
3071 | "霣": "𫕥",
3072 | "霧": "雾",
3073 | "霼": "𪵣",
3074 | "霽": "霁",
3075 | "靂": "雳",
3076 | "靄": "霭",
3077 | "靆": "叇",
3078 | "靈": "灵",
3079 | "靉": "叆",
3080 | "靚": "靓",
3081 | "靜": "静",
3082 | "靝": "靔",
3083 | "靦": "腼",
3084 | "靧": "𫖃",
3085 | "靨": "靥",
3086 | "鞏": "巩",
3087 | "鞝": "绱",
3088 | "鞦": "秋",
3089 | "鞽": "鞒",
3090 | "鞾": "𫖇",
3091 | "韁": "缰",
3092 | "韃": "鞑",
3093 | "韆": "千",
3094 | "韉": "鞯",
3095 | "韋": "韦",
3096 | "韌": "韧",
3097 | "韍": "韨",
3098 | "韓": "韩",
3099 | "韙": "韪",
3100 | "韚": "𫠅",
3101 | "韛": "𫖔",
3102 | "韜": "韬",
3103 | "韝": "鞲",
3104 | "韞": "韫",
3105 | "韠": "𫖒",
3106 | "韻": "韵",
3107 | "響": "响",
3108 | "頁": "页",
3109 | "頂": "顶",
3110 | "頃": "顷",
3111 | "項": "项",
3112 | "順": "顺",
3113 | "頇": "顸",
3114 | "須": "须",
3115 | "頊": "顼",
3116 | "頌": "颂",
3117 | "頍": "𫠆",
3118 | "頎": "颀",
3119 | "頏": "颃",
3120 | "預": "预",
3121 | "頑": "顽",
3122 | "頒": "颁",
3123 | "頓": "顿",
3124 | "頔": "𬱖",
3125 | "頗": "颇",
3126 | "領": "领",
3127 | "頜": "颌",
3128 | "頠": "𬱟",
3129 | "頡": "颉",
3130 | "頤": "颐",
3131 | "頦": "颏",
3132 | "頫": "𫖯",
3133 | "頭": "头",
3134 | "頮": "颒",
3135 | "頰": "颊",
3136 | "頲": "颋",
3137 | "頴": "颕",
3138 | "頵": "𫖳",
3139 | "頷": "颔",
3140 | "頸": "颈",
3141 | "頹": "颓",
3142 | "頻": "频",
3143 | "頽": "颓",
3144 | "顂": "𩓋",
3145 | "顃": "𩖖",
3146 | "顅": "𫖶",
3147 | "顆": "颗",
3148 | "題": "题",
3149 | "額": "额",
3150 | "顎": "颚",
3151 | "顏": "颜",
3152 | "顒": "颙",
3153 | "顓": "颛",
3154 | "顔": "颜",
3155 | "顗": "𫖮",
3156 | "願": "愿",
3157 | "顙": "颡",
3158 | "顛": "颠",
3159 | "類": "类",
3160 | "顢": "颟",
3161 | "顣": "𫖹",
3162 | "顥": "颢",
3163 | "顧": "顾",
3164 | "顫": "颤",
3165 | "顬": "颥",
3166 | "顯": "显",
3167 | "顰": "颦",
3168 | "顱": "颅",
3169 | "顳": "颞",
3170 | "顴": "颧",
3171 | "風": "风",
3172 | "颭": "飐",
3173 | "颮": "飑",
3174 | "颯": "飒",
3175 | "颰": "𩙥",
3176 | "颱": "台",
3177 | "颳": "刮",
3178 | "颶": "飓",
3179 | "颷": "𩙪",
3180 | "颸": "飔",
3181 | "颺": "飏",
3182 | "颻": "飖",
3183 | "颼": "飕",
3184 | "颾": "𩙫",
3185 | "飀": "飗",
3186 | "飄": "飘",
3187 | "飆": "飙",
3188 | "飈": "飚",
3189 | "飋": "𫗋",
3190 | "飛": "飞",
3191 | "飠": "饣",
3192 | "飢": "饥",
3193 | "飣": "饤",
3194 | "飥": "饦",
3195 | "飦": "𫗞",
3196 | "飩": "饨",
3197 | "飪": "饪",
3198 | "飫": "饫",
3199 | "飭": "饬",
3200 | "飯": "饭",
3201 | "飱": "飧",
3202 | "飲": "饮",
3203 | "飴": "饴",
3204 | "飵": "𫗢",
3205 | "飶": "𫗣",
3206 | "飼": "饲",
3207 | "飽": "饱",
3208 | "飾": "饰",
3209 | "飿": "饳",
3210 | "餃": "饺",
3211 | "餄": "饸",
3212 | "餅": "饼",
3213 | "餈": "糍",
3214 | "餉": "饷",
3215 | "養": "养",
3216 | "餌": "饵",
3217 | "餎": "饹",
3218 | "餏": "饻",
3219 | "餑": "饽",
3220 | "餒": "馁",
3221 | "餓": "饿",
3222 | "餔": "𫗦",
3223 | "餕": "馂",
3224 | "餖": "饾",
3225 | "餗": "𫗧",
3226 | "餘": "余",
3227 | "餚": "肴",
3228 | "餛": "馄",
3229 | "餜": "馃",
3230 | "餞": "饯",
3231 | "餡": "馅",
3232 | "餦": "𫗠",
3233 | "餧": "𫗪",
3234 | "館": "馆",
3235 | "餪": "𫗬",
3236 | "餫": "𫗥",
3237 | "餬": "糊",
3238 | "餭": "𫗮",
3239 | "餱": "糇",
3240 | "餳": "饧",
3241 | "餵": "喂",
3242 | "餶": "馉",
3243 | "餷": "馇",
3244 | "餸": "𩠌",
3245 | "餺": "馎",
3246 | "餼": "饩",
3247 | "餾": "馏",
3248 | "餿": "馊",
3249 | "饁": "馌",
3250 | "饃": "馍",
3251 | "饅": "馒",
3252 | "饈": "馐",
3253 | "饉": "馑",
3254 | "饊": "馓",
3255 | "饋": "馈",
3256 | "饌": "馔",
3257 | "饑": "饥",
3258 | "饒": "饶",
3259 | "饗": "飨",
3260 | "饘": "𫗴",
3261 | "饜": "餍",
3262 | "饞": "馋",
3263 | "饟": "𫗵",
3264 | "饠": "𫗩",
3265 | "饢": "馕",
3266 | "馬": "马",
3267 | "馭": "驭",
3268 | "馮": "冯",
3269 | "馯": "𫘛",
3270 | "馱": "驮",
3271 | "馳": "驰",
3272 | "馴": "驯",
3273 | "馹": "驲",
3274 | "馼": "𫘜",
3275 | "駁": "驳",
3276 | "駃": "𫘝",
3277 | "駉": "𬳶",
3278 | "駊": "𫘟",
3279 | "駎": "𩧨",
3280 | "駐": "驻",
3281 | "駑": "驽",
3282 | "駒": "驹",
3283 | "駓": "𬳵",
3284 | "駔": "驵",
3285 | "駕": "驾",
3286 | "駘": "骀",
3287 | "駙": "驸",
3288 | "駚": "𩧫",
3289 | "駛": "驶",
3290 | "駝": "驼",
3291 | "駞": "𫘞",
3292 | "駟": "驷",
3293 | "駡": "骂",
3294 | "駢": "骈",
3295 | "駤": "𫘠",
3296 | "駧": "𩧲",
3297 | "駩": "𩧴",
3298 | "駪": "𬳽",
3299 | "駫": "𫘡",
3300 | "駭": "骇",
3301 | "駰": "骃",
3302 | "駱": "骆",
3303 | "駶": "𩧺",
3304 | "駸": "骎",
3305 | "駻": "𫘣",
3306 | "駼": "𬳿",
3307 | "駿": "骏",
3308 | "騁": "骋",
3309 | "騂": "骍",
3310 | "騃": "𫘤",
3311 | "騄": "𫘧",
3312 | "騅": "骓",
3313 | "騉": "𫘥",
3314 | "騊": "𫘦",
3315 | "騌": "骔",
3316 | "騍": "骒",
3317 | "騎": "骑",
3318 | "騏": "骐",
3319 | "騑": "𬴂",
3320 | "騔": "𩨀",
3321 | "騖": "骛",
3322 | "騙": "骗",
3323 | "騚": "𩨊",
3324 | "騜": "𫘩",
3325 | "騝": "𩨃",
3326 | "騞": "𬴃",
3327 | "騟": "𩨈",
3328 | "騠": "𫘨",
3329 | "騤": "骙",
3330 | "騧": "䯄",
3331 | "騪": "𩨄",
3332 | "騫": "骞",
3333 | "騭": "骘",
3334 | "騮": "骝",
3335 | "騰": "腾",
3336 | "騱": "𫘬",
3337 | "騴": "𫘫",
3338 | "騵": "𫘪",
3339 | "騶": "驺",
3340 | "騷": "骚",
3341 | "騸": "骟",
3342 | "騻": "𫘭",
3343 | "騼": "𫠋",
3344 | "騾": "骡",
3345 | "驀": "蓦",
3346 | "驁": "骜",
3347 | "驂": "骖",
3348 | "驃": "骠",
3349 | "驄": "骢",
3350 | "驅": "驱",
3351 | "驊": "骅",
3352 | "驋": "𩧯",
3353 | "驌": "骕",
3354 | "驍": "骁",
3355 | "驎": "𬴊",
3356 | "驏": "骣",
3357 | "驓": "𫘯",
3358 | "驕": "骄",
3359 | "驗": "验",
3360 | "驙": "𫘰",
3361 | "驚": "惊",
3362 | "驛": "驿",
3363 | "驟": "骤",
3364 | "驢": "驴",
3365 | "驤": "骧",
3366 | "驥": "骥",
3367 | "驦": "骦",
3368 | "驨": "𫘱",
3369 | "驪": "骊",
3370 | "驫": "骉",
3371 | "骯": "肮",
3372 | "髏": "髅",
3373 | "髒": "脏",
3374 | "體": "体",
3375 | "髕": "髌",
3376 | "髖": "髋",
3377 | "髮": "发",
3378 | "鬆": "松",
3379 | "鬍": "胡",
3380 | "鬖": "𩭹",
3381 | "鬚": "须",
3382 | "鬠": "𫘽",
3383 | "鬢": "鬓",
3384 | "鬥": "斗",
3385 | "鬧": "闹",
3386 | "鬨": "哄",
3387 | "鬩": "阋",
3388 | "鬮": "阄",
3389 | "鬱": "郁",
3390 | "鬹": "鬶",
3391 | "魎": "魉",
3392 | "魘": "魇",
3393 | "魚": "鱼",
3394 | "魛": "鱽",
3395 | "魟": "𫚉",
3396 | "魢": "鱾",
3397 | "魥": "𩽹",
3398 | "魦": "𫚌",
3399 | "魨": "鲀",
3400 | "魯": "鲁",
3401 | "魴": "鲂",
3402 | "魵": "𫚍",
3403 | "魷": "鱿",
3404 | "魺": "鲄",
3405 | "魽": "𫠐",
3406 | "鮀": "𬶍",
3407 | "鮁": "鲅",
3408 | "鮃": "鲆",
3409 | "鮄": "𫚒",
3410 | "鮅": "𫚑",
3411 | "鮆": "𫚖",
3412 | "鮈": "𬶋",
3413 | "鮊": "鲌",
3414 | "鮋": "鲉",
3415 | "鮍": "鲏",
3416 | "鮎": "鲇",
3417 | "鮐": "鲐",
3418 | "鮑": "鲍",
3419 | "鮒": "鲋",
3420 | "鮓": "鲊",
3421 | "鮚": "鲒",
3422 | "鮜": "鲘",
3423 | "鮝": "鲞",
3424 | "鮞": "鲕",
3425 | "鮟": "𩽾",
3426 | "鮠": "𬶏",
3427 | "鮡": "𬶐",
3428 | "鮣": "䲟",
3429 | "鮤": "𫚓",
3430 | "鮦": "鲖",
3431 | "鮪": "鲔",
3432 | "鮫": "鲛",
3433 | "鮭": "鲑",
3434 | "鮮": "鲜",
3435 | "鮯": "𫚗",
3436 | "鮰": "𫚔",
3437 | "鮳": "鲓",
3438 | "鮵": "𫚛",
3439 | "鮶": "鲪",
3440 | "鮸": "𩾃",
3441 | "鮺": "鲝",
3442 | "鮿": "𫚚",
3443 | "鯀": "鲧",
3444 | "鯁": "鲠",
3445 | "鯄": "𩾁",
3446 | "鯆": "𫚙",
3447 | "鯇": "鲩",
3448 | "鯉": "鲤",
3449 | "鯊": "鲨",
3450 | "鯒": "鲬",
3451 | "鯔": "鲻",
3452 | "鯕": "鲯",
3453 | "鯖": "鲭",
3454 | "鯗": "鲞",
3455 | "鯛": "鲷",
3456 | "鯝": "鲴",
3457 | "鯞": "𫚡",
3458 | "鯡": "鲱",
3459 | "鯢": "鲵",
3460 | "鯤": "鲲",
3461 | "鯧": "鲳",
3462 | "鯨": "鲸",
3463 | "鯪": "鲮",
3464 | "鯫": "鲰",
3465 | "鯬": "𫚞",
3466 | "鯰": "鲶",
3467 | "鯱": "𩾇",
3468 | "鯴": "鲺",
3469 | "鯶": "𩽼",
3470 | "鯷": "鳀",
3471 | "鯻": "𬶟",
3472 | "鯽": "鲫",
3473 | "鯾": "𫚣",
3474 | "鯿": "鳊",
3475 | "鰁": "鳈",
3476 | "鰂": "鲗",
3477 | "鰃": "鳂",
3478 | "鰆": "䲠",
3479 | "鰈": "鲽",
3480 | "鰉": "鳇",
3481 | "鰊": "𬶠",
3482 | "鰋": "𫚢",
3483 | "鰌": "䲡",
3484 | "鰍": "鳅",
3485 | "鰏": "鲾",
3486 | "鰐": "鳄",
3487 | "鰑": "𫚊",
3488 | "鰒": "鳆",
3489 | "鰓": "鳃",
3490 | "鰕": "𫚥",
3491 | "鰛": "鳁",
3492 | "鰜": "鳒",
3493 | "鰟": "鳑",
3494 | "鰠": "鳋",
3495 | "鰣": "鲥",
3496 | "鰤": "𫚕",
3497 | "鰥": "鳏",
3498 | "鰦": "𫚤",
3499 | "鰧": "䲢",
3500 | "鰨": "鳎",
3501 | "鰩": "鳐",
3502 | "鰫": "𫚦",
3503 | "鰭": "鳍",
3504 | "鰮": "鳁",
3505 | "鰱": "鲢",
3506 | "鰲": "鳌",
3507 | "鰳": "鳓",
3508 | "鰵": "鳘",
3509 | "鰶": "𬶭",
3510 | "鰷": "鲦",
3511 | "鰹": "鲣",
3512 | "鰺": "鲹",
3513 | "鰻": "鳗",
3514 | "鰼": "鳛",
3515 | "鰽": "𫚧",
3516 | "鰾": "鳔",
3517 | "鱀": "𬶨",
3518 | "鱂": "鳉",
3519 | "鱄": "𫚋",
3520 | "鱅": "鳙",
3521 | "鱆": "𫠒",
3522 | "鱇": "𩾌",
3523 | "鱈": "鳕",
3524 | "鱉": "鳖",
3525 | "鱊": "𫚪",
3526 | "鱒": "鳟",
3527 | "鱔": "鳝",
3528 | "鱖": "鳜",
3529 | "鱗": "鳞",
3530 | "鱘": "鲟",
3531 | "鱚": "𬶮",
3532 | "鱝": "鲼",
3533 | "鱟": "鲎",
3534 | "鱠": "鲙",
3535 | "鱢": "𫚫",
3536 | "鱣": "鳣",
3537 | "鱤": "鳡",
3538 | "鱧": "鳢",
3539 | "鱨": "鲿",
3540 | "鱭": "鲚",
3541 | "鱮": "𫚈",
3542 | "鱯": "鳠",
3543 | "鱲": "𫚭",
3544 | "鱷": "鳄",
3545 | "鱸": "鲈",
3546 | "鱺": "鲡",
3547 | "鳥": "鸟",
3548 | "鳧": "凫",
3549 | "鳩": "鸠",
3550 | "鳬": "凫",
3551 | "鳲": "鸤",
3552 | "鳳": "凤",
3553 | "鳴": "鸣",
3554 | "鳶": "鸢",
3555 | "鳷": "𫛛",
3556 | "鳼": "𪉃",
3557 | "鳽": "𫛚",
3558 | "鳾": "䴓",
3559 | "鴀": "𫛜",
3560 | "鴃": "𫛞",
3561 | "鴅": "𫛝",
3562 | "鴆": "鸩",
3563 | "鴇": "鸨",
3564 | "鴉": "鸦",
3565 | "鴐": "𫛤",
3566 | "鴒": "鸰",
3567 | "鴔": "𫛡",
3568 | "鴕": "鸵",
3569 | "鴗": "𫁡",
3570 | "鴛": "鸳",
3571 | "鴜": "𪉈",
3572 | "鴝": "鸲",
3573 | "鴞": "鸮",
3574 | "鴟": "鸱",
3575 | "鴣": "鸪",
3576 | "鴥": "𫛣",
3577 | "鴦": "鸯",
3578 | "鴨": "鸭",
3579 | "鴮": "𫛦",
3580 | "鴯": "鸸",
3581 | "鴰": "鸹",
3582 | "鴲": "𪉆",
3583 | "鴳": "𫛩",
3584 | "鴴": "鸻",
3585 | "鴷": "䴕",
3586 | "鴻": "鸿",
3587 | "鴽": "𫛪",
3588 | "鴿": "鸽",
3589 | "鵁": "䴔",
3590 | "鵂": "鸺",
3591 | "鵃": "鸼",
3592 | "鵊": "𫛥",
3593 | "鵏": "𬷕",
3594 | "鵐": "鹀",
3595 | "鵑": "鹃",
3596 | "鵒": "鹆",
3597 | "鵓": "鹁",
3598 | "鵚": "𪉍",
3599 | "鵜": "鹈",
3600 | "鵝": "鹅",
3601 | "鵟": "𫛭",
3602 | "鵠": "鹄",
3603 | "鵡": "鹉",
3604 | "鵧": "𫛨",
3605 | "鵩": "𫛳",
3606 | "鵪": "鹌",
3607 | "鵫": "𫛱",
3608 | "鵬": "鹏",
3609 | "鵮": "鹐",
3610 | "鵯": "鹎",
3611 | "鵰": "雕",
3612 | "鵲": "鹊",
3613 | "鵷": "鹓",
3614 | "鵾": "鹍",
3615 | "鶄": "䴖",
3616 | "鶇": "鸫",
3617 | "鶉": "鹑",
3618 | "鶊": "鹒",
3619 | "鶌": "𫛵",
3620 | "鶒": "𫛶",
3621 | "鶓": "鹋",
3622 | "鶖": "鹙",
3623 | "鶗": "𫛸",
3624 | "鶘": "鹕",
3625 | "鶚": "鹗",
3626 | "鶠": "𬸘",
3627 | "鶡": "鹖",
3628 | "鶥": "鹛",
3629 | "鶦": "𫛷",
3630 | "鶩": "鹜",
3631 | "鶪": "䴗",
3632 | "鶬": "鸧",
3633 | "鶭": "𫛯",
3634 | "鶯": "莺",
3635 | "鶰": "𫛫",
3636 | "鶱": "𬸣",
3637 | "鶲": "鹟",
3638 | "鶴": "鹤",
3639 | "鶹": "鹠",
3640 | "鶺": "鹡",
3641 | "鶻": "鹘",
3642 | "鶼": "鹣",
3643 | "鶿": "鹚",
3644 | "鷀": "鹚",
3645 | "鷁": "鹢",
3646 | "鷂": "鹞",
3647 | "鷄": "鸡",
3648 | "鷅": "𫛽",
3649 | "鷉": "䴘",
3650 | "鷊": "鹝",
3651 | "鷐": "𫜀",
3652 | "鷓": "鹧",
3653 | "鷔": "𪉑",
3654 | "鷖": "鹥",
3655 | "鷗": "鸥",
3656 | "鷙": "鸷",
3657 | "鷚": "鹨",
3658 | "鷟": "𬸦",
3659 | "鷣": "𫜃",
3660 | "鷤": "𫛴",
3661 | "鷥": "鸶",
3662 | "鷦": "鹪",
3663 | "鷨": "𪉊",
3664 | "鷩": "𫜁",
3665 | "鷫": "鹔",
3666 | "鷭": "𬸪",
3667 | "鷯": "鹩",
3668 | "鷲": "鹫",
3669 | "鷳": "鹇",
3670 | "鷴": "鹇",
3671 | "鷷": "𫜄",
3672 | "鷸": "鹬",
3673 | "鷹": "鹰",
3674 | "鷺": "鹭",
3675 | "鷽": "鸴",
3676 | "鷿": "𬸯",
3677 | "鸂": "㶉",
3678 | "鸇": "鹯",
3679 | "鸊": "䴙",
3680 | "鸋": "𫛢",
3681 | "鸌": "鹱",
3682 | "鸏": "鹲",
3683 | "鸑": "𬸚",
3684 | "鸕": "鸬",
3685 | "鸗": "𫛟",
3686 | "鸘": "鹴",
3687 | "鸚": "鹦",
3688 | "鸛": "鹳",
3689 | "鸝": "鹂",
3690 | "鸞": "鸾",
3691 | "鹵": "卤",
3692 | "鹹": "咸",
3693 | "鹺": "鹾",
3694 | "鹼": "碱",
3695 | "鹽": "盐",
3696 | "麗": "丽",
3697 | "麥": "麦",
3698 | "麨": "𪎊",
3699 | "麩": "麸",
3700 | "麪": "面",
3701 | "麫": "面",
3702 | "麬": "𤿲",
3703 | "麯": "曲",
3704 | "麲": "𪎉",
3705 | "麳": "𪎌",
3706 | "麴": "曲",
3707 | "麵": "面",
3708 | "麷": "𫜑",
3709 | "麼": "么",
3710 | "麽": "么",
3711 | "黃": "黄",
3712 | "黌": "黉",
3713 | "點": "点",
3714 | "黨": "党",
3715 | "黲": "黪",
3716 | "黴": "霉",
3717 | "黶": "黡",
3718 | "黷": "黩",
3719 | "黽": "黾",
3720 | "黿": "鼋",
3721 | "鼂": "鼌",
3722 | "鼉": "鼍",
3723 | "鼕": "冬",
3724 | "鼴": "鼹",
3725 | "齊": "齐",
3726 | "齋": "斋",
3727 | "齎": "赍",
3728 | "齏": "齑",
3729 | "齒": "齿",
3730 | "齔": "龀",
3731 | "齕": "龁",
3732 | "齗": "龂",
3733 | "齘": "𬹼",
3734 | "齙": "龅",
3735 | "齜": "龇",
3736 | "齟": "龃",
3737 | "齠": "龆",
3738 | "齡": "龄",
3739 | "齣": "出",
3740 | "齦": "龈",
3741 | "齧": "啮",
3742 | "齩": "𫜪",
3743 | "齪": "龊",
3744 | "齬": "龉",
3745 | "齭": "𫜭",
3746 | "齮": "𬺈",
3747 | "齯": "𫠜",
3748 | "齰": "𫜬",
3749 | "齲": "龋",
3750 | "齴": "𫜮",
3751 | "齶": "腭",
3752 | "齷": "龌",
3753 | "齼": "𬺓",
3754 | "齾": "𫜰",
3755 | "龍": "龙",
3756 | "龎": "厐",
3757 | "龐": "庞",
3758 | "龑": "䶮",
3759 | "龓": "𫜲",
3760 | "龔": "龚",
3761 | "龕": "龛",
3762 | "龜": "龟",
3763 | "龭": "𩨎",
3764 | "龯": "𨱆",
3765 | "鿁": "䜤",
3766 | "鿓": "鿒",
3767 | "𠁞": "𠀾",
3768 | "𠌥": "𠆿",
3769 | "𠏢": "𠉗",
3770 | "𠐊": "𫝋",
3771 | "𠗣": "㓆",
3772 | "𠞆": "𠛆",
3773 | "𠠎": "𠚳",
3774 | "𠬙": "𪠡",
3775 | "𠽃": "𪠺",
3776 | "𠿕": "𪜎",
3777 | "𡂡": "𪢒",
3778 | "𡃄": "𪡺",
3779 | "𡃕": "𠴛",
3780 | "𡃤": "𪢐",
3781 | "𡄔": "𠴢",
3782 | "𡄣": "𠵸",
3783 | "𡅏": "𠲥",
3784 | "𡅯": "𪢖",
3785 | "𡑍": "𫭼",
3786 | "𡑭": "𡋗",
3787 | "𡓁": "𪤄",
3788 | "𡓾": "𡋀",
3789 | "𡔖": "𡍣",
3790 | "𡞵": "㛟",
3791 | "𡟫": "𫝪",
3792 | "𡠹": "㛿",
3793 | "𡢃": "㛠",
3794 | "𡮉": "𡭜",
3795 | "𡮣": "𡭬",
3796 | "𡳳": "𡳃",
3797 | "𡸗": "𪨩",
3798 | "𡹬": "𪨹",
3799 | "𡻕": "岁",
3800 | "𡽗": "𡸃",
3801 | "𡾱": "㟜",
3802 | "𡿖": "𪩛",
3803 | "𢍰": "𪪴",
3804 | "𢠼": "𢙑",
3805 | "𢣐": "𪬚",
3806 | "𢣚": "𢘝",
3807 | "𢣭": "𢘞",
3808 | "𢤩": "𪫡",
3809 | "𢤱": "𢘙",
3810 | "𢤿": "𪬯",
3811 | "𢯷": "𪭝",
3812 | "𢶒": "𪭯",
3813 | "𢶫": "𢫞",
3814 | "𢷮": "𢫊",
3815 | "𢹿": "𢬦",
3816 | "𢺳": "𪮳",
3817 | "𣈶": "暅",
3818 | "𣋋": "𣈣",
3819 | "𣍐": "𫧃",
3820 | "𣙎": "㭣",
3821 | "𣜬": "𪳗",
3822 | "𣝕": "𣘷",
3823 | "𣞻": "𣘓",
3824 | "𣠩": "𣞎",
3825 | "𣠲": "𣑶",
3826 | "𣯩": "𣯣",
3827 | "𣯴": "𣭤",
3828 | "𣯶": "毶",
3829 | "𣽏": "𪶮",
3830 | "𣾷": "㳢",
3831 | "𣿉": "𣶫",
3832 | "𤁣": "𣺽",
3833 | "𤄷": "𪶒",
3834 | "𤅶": "𣷷",
3835 | "𤑳": "𤎻",
3836 | "𤑹": "𪹀",
3837 | "𤒎": "𤊀",
3838 | "𤒻": "𪹹",
3839 | "𤓌": "𪹠",
3840 | "𤓎": "𤎺",
3841 | "𤓩": "𤊰",
3842 | "𤘀": "𪺣",
3843 | "𤛮": "𤙯",
3844 | "𤛱": "𫞢",
3845 | "𤜆": "𪺪",
3846 | "𤠮": "𪺸",
3847 | "𤢟": "𤝢",
3848 | "𤢻": "𢢐",
3849 | "𤩂": "𫞧",
3850 | "𤪺": "㻘",
3851 | "𤫩": "㻏",
3852 | "𤬅": "𪼴",
3853 | "𤳷": "𪽝",
3854 | "𤳸": "𤳄",
3855 | "𤷃": "𪽭",
3856 | "𤸫": "𤶧",
3857 | "𤺔": "𪽴",
3858 | "𥊝": "𥅿",
3859 | "𥌃": "𥅘",
3860 | "𥏝": "𪿊",
3861 | "𥕥": "𥐰",
3862 | "𥖅": "𥐯",
3863 | "𥖲": "𪿞",
3864 | "𥗇": "𪿵",
3865 | "𥗽": "𬒗",
3866 | "𥜐": "𫀓",
3867 | "𥜰": "𫀌",
3868 | "𥞵": "𥞦",
3869 | "𥢢": "䅪",
3870 | "𥢶": "𫞷",
3871 | "𥢷": "𫀮",
3872 | "𥨐": "𥧂",
3873 | "𥪂": "𥩺",
3874 | "𥯤": "𫁳",
3875 | "𥴨": "𫂖",
3876 | "𥴼": "𫁺",
3877 | "𥵃": "𥱔",
3878 | "𥵊": "𥭉",
3879 | "𥶽": "𫁱",
3880 | "𥸠": "𥮋",
3881 | "𥻦": "𫂿",
3882 | "𥼽": "𥹥",
3883 | "𥽖": "𥺇",
3884 | "𥾯": "𫄝",
3885 | "𥿊": "𦈈",
3886 | "𦀖": "𫄦",
3887 | "𦂅": "𦈒",
3888 | "𦃄": "𦈗",
3889 | "𦃩": "𫄯",
3890 | "𦅇": "𫄪",
3891 | "𦅈": "𫄵",
3892 | "𦆲": "𫟇",
3893 | "𦒀": "𫅥",
3894 | "𦔖": "𫅼",
3895 | "𦘧": "𡳒",
3896 | "𦟼": "𫆝",
3897 | "𦠅": "𫞅",
3898 | "𦡝": "𫆫",
3899 | "𦢈": "𣍨",
3900 | "𦣎": "𦟗",
3901 | "𦧺": "𫇘",
3902 | "𦪙": "䑽",
3903 | "𦪽": "𦨩",
3904 | "𦱌": "𫇪",
3905 | "𦾟": "𦶻",
3906 | "𧎈": "𧌥",
3907 | "𧒯": "𫊹",
3908 | "𧔥": "𧒭",
3909 | "𧕟": "𧉐",
3910 | "𧜗": "䘞",
3911 | "𧜵": "䙊",
3912 | "𧝞": "䘛",
3913 | "𧞫": "𫌋",
3914 | "𧟀": "𧝧",
3915 | "𧡴": "𫌫",
3916 | "𧢄": "𫌬",
3917 | "𧦝": "𫍞",
3918 | "𧦧": "𫍟",
3919 | "𧩕": "𫍭",
3920 | "𧩙": "䜥",
3921 | "𧩼": "𫍶",
3922 | "𧫝": "𫍺",
3923 | "𧬤": "𫍼",
3924 | "𧭈": "𫍾",
3925 | "𧭹": "𫍐",
3926 | "𧳟": "𧳕",
3927 | "𧵳": "䞌",
3928 | "𧶔": "𧹓",
3929 | "𧶧": "䞎",
3930 | "𧷎": "𪠀",
3931 | "𧸘": "𫎨",
3932 | "𧹈": "𪥠",
3933 | "𧽯": "𫎸",
3934 | "𨂐": "𫏌",
3935 | "𨄣": "𨀱",
3936 | "𨅍": "𨁴",
3937 | "𨆪": "𫏕",
3938 | "𨇁": "𧿈",
3939 | "𨇞": "𨅫",
3940 | "𨇤": "𫏨",
3941 | "𨇰": "𫏞",
3942 | "𨇽": "𫏑",
3943 | "𨈊": "𨂺",
3944 | "𨈌": "𨄄",
3945 | "𨊰": "䢀",
3946 | "𨊸": "䢁",
3947 | "𨊻": "𨐆",
3948 | "𨋢": "䢂",
3949 | "𨌈": "𫐍",
3950 | "𨍰": "𫐔",
3951 | "𨎌": "𫐋",
3952 | "𨎮": "𨐉",
3953 | "𨏠": "𨐇",
3954 | "𨏥": "𨐊",
3955 | "𨞺": "𫟫",
3956 | "𨟊": "𫟬",
3957 | "𨢿": "𨡙",
3958 | "𨣈": "𨡺",
3959 | "𨣞": "𨟳",
3960 | "𨣧": "𨠨",
3961 | "𨤻": "𨤰",
3962 | "𨥛": "𨱀",
3963 | "𨥟": "𫓫",
3964 | "𨦫": "䦀",
3965 | "𨧀": "𬭊",
3966 | "𨧜": "䦁",
3967 | "𨧰": "𫟽",
3968 | "𨧱": "𨱊",
3969 | "𨨏": "𬭛",
3970 | "𨨛": "𫓼",
3971 | "𨨢": "𫓿",
3972 | "𨩰": "𫟾",
3973 | "𨪕": "𫓮",
3974 | "𨫒": "𨱐",
3975 | "𨬖": "𫔏",
3976 | "𨭆": "𬭶",
3977 | "𨭎": "𬭳",
3978 | "𨭖": "𫔑",
3979 | "𨭸": "𫔐",
3980 | "𨮂": "𨱕",
3981 | "𨮳": "𫔒",
3982 | "𨯅": "䥿",
3983 | "𨯟": "𫔓",
3984 | "𨰃": "𫔉",
3985 | "𨰋": "𫓳",
3986 | "𨰥": "𫔕",
3987 | "𨰲": "𫔃",
3988 | "𨲳": "𫔖",
3989 | "𨳑": "𨸁",
3990 | "𨳕": "𨸀",
3991 | "𨴗": "𨸅",
3992 | "𨴹": "𫔲",
3993 | "𨵩": "𨸆",
3994 | "𨵸": "𨸇",
3995 | "𨶀": "𨸉",
3996 | "𨶏": "𨸊",
3997 | "𨶮": "𨸌",
3998 | "𨶲": "𨸋",
3999 | "𨷲": "𨸎",
4000 | "𨼳": "𫔽",
4001 | "𨽏": "𨸘",
4002 | "𩀨": "𫕚",
4003 | "𩅙": "𫕨",
4004 | "𩎖": "𫖑",
4005 | "𩎢": "𩏾",
4006 | "𩏂": "𫖓",
4007 | "𩏠": "𫖖",
4008 | "𩏪": "𩏽",
4009 | "𩏷": "𫃗",
4010 | "𩑔": "𫖪",
4011 | "𩒎": "𫖭",
4012 | "𩓣": "𩖕",
4013 | "𩓥": "𫖵",
4014 | "𩔑": "𫖷",
4015 | "𩔳": "𫖴",
4016 | "𩖰": "𫠇",
4017 | "𩗀": "𩙦",
4018 | "𩗓": "𫗈",
4019 | "𩗴": "𫗉",
4020 | "𩘀": "𩙩",
4021 | "𩘝": "𩙭",
4022 | "𩘹": "𩙨",
4023 | "𩘺": "𩙬",
4024 | "𩙈": "𩙰",
4025 | "𩚛": "𩟿",
4026 | "𩚥": "𩠀",
4027 | "𩚩": "𫗡",
4028 | "𩚵": "𩠁",
4029 | "𩛆": "𩠂",
4030 | "𩛌": "𫗤",
4031 | "𩛡": "𫗨",
4032 | "𩛩": "𩠃",
4033 | "𩜇": "𩠉",
4034 | "𩜦": "𩠆",
4035 | "𩜵": "𩠊",
4036 | "𩝔": "𩠋",
4037 | "𩝽": "𫗳",
4038 | "𩞄": "𩠎",
4039 | "𩞦": "𩠏",
4040 | "𩞯": "䭪",
4041 | "𩟐": "𩠅",
4042 | "𩟗": "𫗚",
4043 | "𩠴": "𩠠",
4044 | "𩡣": "𩡖",
4045 | "𩡺": "𩧦",
4046 | "𩢡": "𩧬",
4047 | "𩢴": "𩧵",
4048 | "𩢸": "𩧳",
4049 | "𩢾": "𩧮",
4050 | "𩣏": "𩧶",
4051 | "𩣑": "䯃",
4052 | "𩣫": "𩧸",
4053 | "𩣵": "𩧻",
4054 | "𩣺": "𩧼",
4055 | "𩤊": "𩧩",
4056 | "𩤙": "𩨆",
4057 | "𩤲": "𩨉",
4058 | "𩤸": "𩨅",
4059 | "𩥄": "𩨋",
4060 | "𩥇": "𩨍",
4061 | "𩥉": "𩧱",
4062 | "𩥑": "𩨌",
4063 | "𩦠": "𫠌",
4064 | "𩧆": "𩨐",
4065 | "𩭙": "𩬣",
4066 | "𩯁": "𫙂",
4067 | "𩯳": "𩯒",
4068 | "𩰀": "𩬤",
4069 | "𩰹": "𩰰",
4070 | "𩳤": "𩲒",
4071 | "𩴵": "𩴌",
4072 | "𩵦": "𫠏",
4073 | "𩵩": "𩽺",
4074 | "𩵹": "𩽻",
4075 | "𩶁": "𫚎",
4076 | "𩶘": "䲞",
4077 | "𩶰": "𩽿",
4078 | "𩶱": "𩽽",
4079 | "𩷰": "𩾄",
4080 | "𩸃": "𩾅",
4081 | "𩸄": "𫚝",
4082 | "𩸡": "𫚟",
4083 | "𩸦": "𩾆",
4084 | "𩻗": "𫚨",
4085 | "𩻬": "𫚩",
4086 | "𩻮": "𫚘",
4087 | "𩼶": "𫚬",
4088 | "𩽇": "𩾎",
4089 | "𩿅": "𫠖",
4090 | "𩿤": "𫛠",
4091 | "𩿪": "𪉄",
4092 | "𪀖": "𫛧",
4093 | "𪀦": "𪉅",
4094 | "𪀾": "𪉋",
4095 | "𪁈": "𪉉",
4096 | "𪁖": "𪉌",
4097 | "𪂆": "𪉎",
4098 | "𪃍": "𪉐",
4099 | "𪃏": "𪉏",
4100 | "𪃒": "𫛻",
4101 | "𪃧": "𫛹",
4102 | "𪄆": "𪉔",
4103 | "𪄕": "𪉒",
4104 | "𪅂": "𫜂",
4105 | "𪆷": "𫛾",
4106 | "𪇳": "𪉕",
4107 | "𪈼": "𱊜",
4108 | "𪉸": "𫜊",
4109 | "𪋿": "𫧮",
4110 | "𪌭": "𫜓",
4111 | "𪍠": "𫜕",
4112 | "𪓰": "𫜟",
4113 | "𪔵": "𪔭",
4114 | "𪘀": "𪚏",
4115 | "𪘯": "𪚐",
4116 | "𪙏": "𫜯",
4117 | "𪟖": "𠛾",
4118 | "𪷓": "𣶭",
4119 | "𫒡": "𫓷",
4120 | "𫜦": "𫜫"
4121 | }
4122 |
4123 |
4124 | def t2s(text: str) -> str:
4125 | """
4126 | 实现繁体字到简体字的转换,ts_dic 是繁体到简体的字符映射表
4127 |
4128 | :param text: 需要转换的繁体字文本内容,可以是单行、多行、包含转义
4129 | :type text: 仅字符串.
4130 | :return: 转换后的
4131 | """
4132 | result_chars = []
4133 |
4134 | for character in text:
4135 | ch_convert = ts_dic.get(character, character)
4136 | result_chars.append(ch_convert)
4137 |
4138 | return ''.join(result_chars)
4139 |
4140 |
4141 | if __name__ == "__main__":
4142 | print(t2s("中文簡繁轉換開源項目,支持詞彙級別的轉換、異體字轉換和地區習慣用詞轉換(中國大陸、臺灣、香港、日本新字體)。不提供普通話與粵語的轉換。"))
4143 |
--------------------------------------------------------------------------------