- 首页
- 修复 FIT 文件
100% 私密——文件永不离开你的浏览器
修复 FIT 文件
一次传输故障、一张写满的存储卡或一个错误的文件头 CRC,就足以让 Garmin Connect 和 Strava 拒收一份还装着整次骑行的 .fit 文件。本工具重建让解析器停下的那些部分——文件头、两处 CRC、被掐断的结尾、损坏的定义消息——交还一份符合标准的 FIT 文件。免费、在你的浏览器里运行、字节永不离开你的设备。
如何修复 FIT 文件
- 1
拖入 .fit 文件
把损坏的文件拖到虚线框,或点击浏览。解码与修复在你设备的后台 Worker 中进行;文件不上传。
- 2
查看改动
结果逐条列出结构修复:签名、文件头长度、头 CRC、数据长度、截断的结尾、越过受损字节的重同步、文件 CRC。健康的文件会被报告为未改动。
- 3
检查轨迹
GPS 记录幸存时,距离、时长、爬升和地图都由修复后的字节呈现。若没有 GPS 点残留,页面会如实相告,而不是画一条空路线。
- 4
下载
保存修复后的 .fit,上传到原本拒收它的地方。你电脑上的原文件保持原样。
FIT 文件为什么会被拒收
FIT 是紧凑的二进制活动格式。解析器不会像浏览 XML 那样扫读它:它先信任一个声明了后面有多少数据字节的文件头,然后走过一串定义消息与数据消息,最后对被告知要读的一切做 CRC 校验。三个约定破掉任何一个,严格的上传器就停下,往往只丢下一句笼统的「文件已损坏」,不提示是哪个约定失败了。
实际出现的故障都很平淡。拔线或手表存储写满,让文件在记录中间被切断,文件头仍然承诺一个字节不够的长度。设备偶尔写出与底层字节不匹配的文件头 CRC 或文件 CRC,Connect 还没看一个 GPS 点就拒绝上传。更少见的是定义消息——那个声明如何读取其后记录的小 schema——被弄坏,随后的每条消息都成了乱码,尽管记录本身完好无损。
修复会改动什么
修复从文件头之后第一个字节开始遍历消息流。每条仍然符合其声明大小的定义与数据消息都原样复制——这正是厂商字段、圈、session 和开发者数据得以保留的原因:它们本来就不是坏掉的部分。输出是一个新的 FIT 文件:数据长度字段已纠正、.FIT 签名若受损已恢复、两处 CRC 用 Garmin 自己 SDK 的校验和算法重算。14 字节的头保留其头 CRC;12 字节的头还是 12 字节的头。
在消息中间戛然而止的文件被切回最后一条完整消息,然后重写文件头,让它描述实际剩下的字节,而不是设备本来想写的字节数。如果某条定义本身不可读,扫描会跳到下一个「像样」的字节序列——一条可信的定义后跟着一条与之相符的消息——从那里继续保留。间隙里的消息被丢弃,而不是瞎猜。
文件头与 CRC 本来就校验通过的文件,原样奉还。修复不会重编码一份健康的活动、不会发明海拔、也不会平滑一段只是难看的 GPS 轨迹。如果唯一的问题是校验和不对或尾巴太短,你下载到的记录载荷就是你拖进来的记录载荷。
什么无法挽回
修复找回的是文件里存在、只是被结构损伤锁住的记录;它无法重建设备从未写下的采样。在第一小时处被切断的文件,回来的是一份带诚实文件头的一小时活动,不是你记忆里的三小时骑行。从未存储的坐标、传感器早已掉线时的心率采样、以及你忘了下载的整个第二个文件——任何校验和都无能为力。
损坏的记录定义会连带失去依赖它的记录。那些数据消息自己没有 schema;定义一旦消失,把后面的字节当作纬度和心率就只能是猜测。工具从下一条完好的定义处继续——往往是圈或 session——并报告有多少条记录消息幸存。如果修复后地图是空的,说明 GPS 记录没能活下来。要删除绕路或拼接两次骑行,请用合并与拆分工具;修复只负责让损坏的文件重新可读。
下载之后
下载文件名带 -repaired 后缀,原件原地不动。像上传设备导出文件一样上传修复后的文件即可。只缺 CRC 的文件应该显示你记忆中一样的距离、圈段与开始时间。被切短的文件会显示更短的活动——因为那些字节只装了这么多。下载旁的地图正是用修复后的字节绘制的,发送之前你就能看到上传器将收到什么。
你的文件永远不会离开这个浏览器
这个工具——与本站所有工具一样——完全以客户端 JavaScript 运行。你拖入的文件在自己设备的 Web Worker 里解析、在内存中转换,然后直接作为下载交还给你。没有上传端点,没有服务器端转换服务,也没有临时存储:你可以打开浏览器开发者工具的网络面板,亲眼确认没有任何文件字节被发送到任何地方。
对健身数据而言,这一点比大多数文件更重要。一条 GPS 轨迹是一份精确的日志:你在哪里、什么时间、心跳多快——家庭住址、训练习惯、常跑路线和比赛日程全在一个文件里。让转换留在设备上,意味着第三方转换器永远拿不到这份日志的副本;而且这个工具在飞机上、地下室里或任何没信号的地方,都照常工作。
修复认识的损伤
| 坏在哪 | 上传器的反应 | 修复做什么 |
|---|---|---|
| 文件 CRC 错误 | 还没读记录就拒绝 | 用 FIT SDK 校验和重算 CRC |
| 文件头 CRC 错误 | 停在 14 字节头上 | 重写前 12 字节上的头 CRC |
| 下载被截断 | 头声明长度越过文件末尾 | 保留最后一条完整消息并修正长度 |
| 定义消息损坏 | 其后所有消息解析失败 | 重同步到下一条完好定义并保留其后内容 |
| .FIT 签名缺失 | 拒绝把这些字节当作 FIT | 恢复签名并重算 CRC |
常见问题
免费。没有账号、没有试用、没有付费解锁。它和本站的转换器、合并、拆分、查看器一样,是纯浏览器工具。