ASCII 可读性检测

🔍 ASCII Readability Check

Estimate the share of ASCII and printable characters in text to judge encoding and content readability.

📐 计算公式与说明

ASCII 占比 = (总字符数 − 非ASCII字符数) ÷ 总字符数 × 100%;安全可打印占比 = (总字符数 − 非ASCII − 控制字符) ÷ 总字符数 × 100%。校验:总字符数、非ASCII数、控制字符数三项为必填有效数值;总字符数为 0 时占比显示 —。判据:两项占比越高,文本对纯英文环境的兼容性与安全可打印性越好。

控制字符(如换行)可视情况计入安全范围。

📚 深度解析:ASCII 可读性检测

💡 常见使用场景

示例:混合日志片段
含中文与二进制碎片的日志 ASCII 可打印占比约 62%,提示夹带非文本内容,需先做编码识别再入库。

❓ 常见问题(FAQ)

ASCII 占比多少算可读文本?
无绝对阈值,可打印 ASCII 占比 >80% 且控制字符极少通常视为纯文本,具体结合业务。
中文会影响判定吗?
会。中文 UTF-8 单字占 3 字节均为非 ASCII,该指标侧重"是否含大量二进制/不可打印字节",不能单独证明中文乱码。
能区分 Base64 与明文吗?
Base64 仅用 64 个可打印字符、ASCII 占比高但信息熵大,需结合字符分布(是否仅 A-Za-z0-9+/=)进一步判断。

Formula & Standard References

Item Formula / Rule Source / Standard
Printable ratio Ratio = bytes in 0x20–0x7E ÷ total bytes × 100% ANSI X3.4-1986 printable character set
Control bytes 0x00–0x1F and 0x7F are control codes and do not count as readable ISO/IEC 646 control character table
Multibyte text Under UTF-8 a CJK character takes 3 bytes against 1 for ASCII, so heavy CJK text scores low RFC 3629 UTF-8, a transformation format of ISO 10646