文件编码检测器
文件
当文件出现乱码(괆쒋쀎)时,第一步是弄清它实际是什么编码。这个检测器在你的浏览器中读取文件的字节(永不上传)并运行标准启发式:先 BOM 字节序列(UTF-16 LE 是 FF FE,UTF-8 BOM 是 EF BB BF 等),然后空字节密度(UTF-16 在 ASCII 内容中每隔一个字节有空字节),然后 UTF-8 有效性检查(大多数多字节序列在 Latin-1 中无效,所以有效 UTF-8 = 很可能是 UTF-8)。返回检测的编码、置信度百分比、存在的 BOM 字节,以及并排的十六进制/文本预览,让你视觉上检查解码。
—
使用方法
- 拖入或选择任何文本文件。检测在你浏览器中运行 — 文件永不离开页面。
- 先检查 BOM 面板:BOM 意味着编码基本确定。无 BOM 意味着启发式检测。
- 比较十六进制视图与解码后的文本预览。如果非 ASCII 字符看起来正确,检测就是对的。
常见问题
- 为什么没有像 chardet 那样的『检测』库?
- 浏览器不附带 chardet,为少数常见情况导入大型编码检测库(ICU `CharsetDetector` 的 JS 端口约 200KB)过分。本工具覆盖 95% 的情况:BOM、纯 ASCII、有效 UTF-8 以及通过空字节模式的 UTF-16。对无 BOM 的异国亚洲编码(Shift_JIS、GB2312、EUC-KR),你需要 chardet — 但本工具会告诉你『不是 UTF-8』,让你知道去别处找。
- BOM 是怎么回事?
- Byte Order Mark 是显式标记编码的 2-4 字节前缀。UTF-8 BOM 是 `EF BB BF`(技术上不必要、有争议 — Microsoft 添加,Unix 工具通常去除)。UTF-16/32 BOM(`FF FE` 等)有用,因为它们也信号 endianness。如果文件有 BOM,绝对信任它。