This is a program that counts the amount of CJK characters based on Unicode ranges and Chinese encoding standards.
Project description
CJK-character-count
This is a program that counts the amount of CJK characters based on Unicode ranges and Chinese encoding standards.
此软件以统一码(Unicode)区块与汉字编码标准统计字体内的汉字数量。
来源
This program is adapted from NightFurySL2001/CJK-character-count, and has been modified into CLI and API versions with added output formats (txt or pandas DataFrame).
本程序来源于 NightFurySL2001/CJK-character-count,修改为 cli 和 api 版本,并添加了输出格式(txt 或 pandas DataFrame)。
How this works 如何运作
This program accepts 1 font file at a time (OpenType/TrueType single font file currently) and extract the character list from cmap table, which records the Unicode (base-10)-glyph shape for a font. The list is then parsed to count the amount of characters based on Unicode ranges (comparing the hexadecimal range) and Chinese encoding standards (given a list of .txt files with the actual character in it).
此软件可计算一套字体内的汉字数量,目前只限 OpenType/TrueType 单字体文件而已。导入字体时,软件将从cmap表(储存字体内(十进制)统一码与字符对应的表)提取汉字列表,然后以该列表依统一码区块(比对十六进制码位)与汉字编码标准(比对 .txt 文件)统计字体内的汉字数量。
Currently supported font formats 支援的字体格式
Major font formats are supported in this software.
主要字体格式本软件皆都支援。
*.ttf, *.otf, *.woff, *.woff2, *.ttc, *.otc
Installation 安装
This project uses uv for dependency management. 本项目使用 uv 进行依赖管理,请确保已安装:
uv sync
Usage 使用方法
CLI (Command Line Interface) 命令行
Basic usage: 基础用法:
python main.py /path/to/font.ttf
Options 选项:
filename: Path to the font file. (Required)- 字体文件路径。(必填)
--font-id: Font ID for TTC/OTC files (default: -1, auto-select first).- TTC/OTC 字体 ID(默认:-1,自动选择第一个)。
--lang: Output language / 输出语言 (en,zhs,zht, default:zhs).--format: Output format / 输出格式 (txt,df, default:df).txt: Plain text report. 纯文本报告。df: Pandas DataFrame string representation. Pandas DataFrame 字符串表示。
Examples 示例:
# Default (Simplified Chinese, DataFrame output)
# 默认(简体中文,DataFrame 输出)
uv run main myfont.ttf
# Traditional Chinese, Text output
# 繁体中文,文本输出
uv run main myfont.ttf --lang zht --format txt
# Specific font in a TTC collection
# 指定 TTC 集合中的特定字体
uv run main myfont.ttc --font-id 1
Library (Python Import) 库引用
You can use this tool as a library in your own Python scripts. 您可以在自己的 Python 脚本中将此工具作为库引用。
from cjk_character_count import character
# Get text report (default language is zhs, default format is df)
# 获取报告(默认语言为 zhs,默认格式为 df)
df = character("path/to/font.ttf")
print(df)
# Get DataFrame with Traditional Chinese headers
# 获取繁体中文表头的 DataFrame
df_zht = character("path/to/font.ttf", lang="zht", format="df")
print(df_zht)
# Get text report
# 获取文本报告
text_report = character("path/to/font.ttf", format="txt")
print(text_report)
Currently supported encoding standard/standardization list 支援的编码标准/汉字表
Details of the character lists can be found in https://github.com/NightFurySL2001/cjktables.
字表详情可参见 https://github.com/NightFurySL2001/cjktables 。
Encoding standard 编码标准
-
GB/T 12345
*Note: Source file from character_set by @mrhso.
注:字表来源为 @mrhso character_set。 -
GBK
*Note: Private Use Area (PUA) characters are removed and not counted, resulting in 20923 characters.
注:不计算私用区(PUA)字符,共计 20923 字。 -
IICore/国际表意文字核心(Deprecated/已废除)
Standardization list 汉字表
-
List of Frequently Used Characters in Modern Chinese/现代汉语常用字表
*Note: Old name in this software was 3500 Commonly Used Chinese Characters.
注:旧版软件内名称为《3500 字常用汉字表》。 -
List of Frequently Used Characters of Compulsory Education/义务教育语文课程常用字表
-
Chart of Standard Forms of Common National Characters/常用國字標準字體表
*Note: Old name in this software was 《台湾教育部常用字表》。
注:旧版软件内名称为《台湾教育部常用字表》。 -
Chart of Standard Forms of Less-Than-Common National Characters/次常用國字標準字體表
*Note: Old name in this software was 《台湾教育部次常用字表》, and was temporarily removed in v0.10 and v0.11.
注:旧版软件内名称为《台湾教育部次常用字表》,并于 0.10 版和 0.11 版暂时移除。 -
List of Graphemes of Commonly-used Chinese Characters (Online version)/常用字字形表(线上版)
-
Supplementary Character Set (suppchara, level 1-6)/常用香港外字表(1-6 级)
Foundry list 厂商字表
-
FounderType Simp./Trad. List 方正简繁字表
License 授权
This software is licensed under MIT License. Details of the license can be found in the accompanying LICENSE file.
本软件以 MIT 授权条款发布。授权详情可在随附的 LICENSE 文件内查阅。
Changelog 更新日志
Refer to readme.txt. 参考readme.txt。
This program is requested by ziticool. Visit their site to see this in action.
此软件由ziticool要求。浏览该网址以查看使用方式。
致谢
Thank you to NightFurySL2001 for the original code. The complete refactoring was done by Trae . The translation was completed by DeepSeek .
感谢 NightFurySL2001 提供的原始代码。 重构由 Trae 完成。 翻译由 DeepSeek 完成。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cjk_character_count-0.60.tar.gz.
File metadata
- Download URL: cjk_character_count-0.60.tar.gz
- Upload date:
- Size: 18.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab7b83289b6ec69efd51aee5539f9479d7a40773538a0b32248d073824a7225b
|
|
| MD5 |
55c3438188211a684c054c64236bd497
|
|
| BLAKE2b-256 |
52f766aab3f51623dbf78c7e6954613735e720b00c509060a5da9a5097270d66
|
File details
Details for the file cjk_character_count-0.60-py3-none-any.whl.
File metadata
- Download URL: cjk_character_count-0.60-py3-none-any.whl
- Upload date:
- Size: 16.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0369f0c4e39e04e0e9b392c614245afced44ecb524b0190776acd9ff9c325286
|
|
| MD5 |
3dc9caa49001fb75c2c6eb018805a469
|
|
| BLAKE2b-256 |
c5a7ff335a9b36e43b72f20f275331dfea16ef0eb6c9a5fd984301115e46a29d
|