← 打开 SRT 字幕格式检查器

使用说明与检查边界

这份工具帮助你在字幕交付前定位基本 SRT 格式问题。它不修改字幕,不代替看原片、听声音与核对文字。

三步使用

  1. 保留原文件,确认副本以 UTF-8 编码保存(可带 BOM)。编码不明时先在文本编辑器中核对;改扩展名不会转码。
  2. 打开同目录下的 srt-checker.html,选择文件并点击“检查文件”。文件最大 2 MiB(2,097,152 字节),最多 20,000 个字幕段。
  3. 按段号与原文件行号复查。需要留档时下载 JSON 报告;修改副本后重新检查,再放到目标播放器对照原片。

哪些结果需要处理

类别工具会报告你要做什么
错误编码不支持、序号无效或重复、缺时间箭头、非法时间语法、结束不晚于开始、缺字幕文本、疑似缺段落空行。回到原文件定位和修订;格式错误不代表可以自动删掉该字幕。
提醒序号不连续、时间重叠、时间顺序倒退,以及已有替换字符。对照原片和导出方式确认。有意重叠或特殊编号可能需要保留。
未检查文字事实、翻译和专名、音画同步、说话人、版权、目标软件兼容性、特定平台阅读速度和样式规则。由文字或内容责任人逐项核对,并在实际交付环境播放。

本工具采用的基本格式

正整数序号
HH:MM:SS,mmm --> HH:MM:SS,mmm
一行或多行字幕文本

下一个字幕段…

编码与隐私

工具使用严格 UTF-8 解码,遇到非法字节直接停止,不使用替换字符掩盖解码错误。UTF-16/UTF-32 标记或 NUL 字节会触发复核提示;不猜测 GBK 等其他编码。无 BOM 文件即使字节可以按 UTF-8 解码,也不能证明它最初使用什么编码或文字一定正确,已发生的乱码仍需对照原文。

没有外部库、统计、上传接口、网络请求或浏览器存储。文件名与字幕正文只用于当前页面显示;原字幕始终作为文本显示,绝不作为 HTML 执行。报告不包含原文件名或字幕正文,但含段号、行号、数值时间和诊断信息。点击“清空”清理页面状态;关闭标签页结束本次使用。浏览器或操作系统的文件下载记录由你自行管理。

开发与复测接口

检查器的唯一核心位于 <script id="srt-core">。独立测试应提取这段代码到 Node VM,直接调用同一实现,避免测试代码另写一份解析器:

const core = html.match(/<script id="srt-core">([\s\S]*?)<\/script>/)[1];
const context = vm.createContext({ TextDecoder, TextEncoder });
vm.runInContext(core, context);
const report = context.SRTChecker.checkBytes(new Uint8Array(bytes));

checkBytes(Uint8Array | ArrayBuffer) 检查原始字节;checkText(string) 用于已经解码的测试文本,不能验证原文件编码;decodeUtf8(bytes) 和 parseTimeLine(line) 也通过同一 API 暴露。核心返回确定性的报告,不读取日期、文件系统或网络。

报告字段:complete 表示是否完成范围内扫描;formatPass 仅表示未发现覆盖范围内的格式错误。errors / warnings 中每条含 code, block, line, relatedBlock, message;cues 仅存定位与数值时间,不存文字。完整边界在 unchecked;不能将 formatPass=true 写成“字幕全部通过”。

规则依据与版本

2026-10-14 核对:美国国会图书馆的 SubRip 格式描述用于序号、时间、正文和空行结构;该描述标注为 Preliminary,本文不把其行长度叙述当作所有平台限制。严格 UTF-8 是本工具自身支持范围,不是断言全部 SRT 文件必须如此。

结构参考:https://www.loc.gov/preservation/digital/formats/fdd/fdd000569.shtml
严格解码 API:https://developer.mozilla.org/en-US/docs/Web/API/TextDecoder/decode

工具版本 1.0.0 · 适用于已有字幕文件交付前的格式复查 · 不承诺收录、流量、字幕质量或版权结果。