Skip to main content

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 编码标准

Standardization list 汉字表

Foundry 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cjk_character_count-0.60.tar.gz (18.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cjk_character_count-0.60-py3-none-any.whl (16.7 kB view details)

Uploaded Python 3

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

Hashes for cjk_character_count-0.60.tar.gz
Algorithm Hash digest
SHA256 ab7b83289b6ec69efd51aee5539f9479d7a40773538a0b32248d073824a7225b
MD5 55c3438188211a684c054c64236bd497
BLAKE2b-256 52f766aab3f51623dbf78c7e6954613735e720b00c509060a5da9a5097270d66

See more details on using hashes here.

File details

Details for the file cjk_character_count-0.60-py3-none-any.whl.

File metadata

File hashes

Hashes for cjk_character_count-0.60-py3-none-any.whl
Algorithm Hash digest
SHA256 0369f0c4e39e04e0e9b392c614245afced44ecb524b0190776acd9ff9c325286
MD5 3dc9caa49001fb75c2c6eb018805a469
BLAKE2b-256 c5a7ff335a9b36e43b72f20f275331dfea16ef0eb6c9a5fd984301115e46a29d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page