FictionBook 2.0 电子书 (.fb2)
FictionBook 标准FictionBook 2.0 (FB2) 是一种流行的开放式语义 XML 电子书格式,可将整本书的文本、排版、元数据和封面插图打包在一个独立 XML 文件中。
将 FB2 转换为 EPUB
免费的浏览器端 FB2 转 EPUB 转换器。在您的设备上即时转换文件。
检查与元数据
操作系统和文件分析器通过检查开头的二进制字节序列来识别 FB2 文件:
字节级文件头签名 (魔数)
操作系统和文件分析器通过检查开头的二进制字节序列来识别 FB2 文件:
十六进制签名 (偏移量 0):
3C 3F 78 6D 6CASCII 表示形式: <?xml
标准化: FictionBook 开放 XML 规范
技术规格
| 容器架构 | 单个独立的 XML 文档,包含元数据、正文各章、诗歌、题词及 Base64 编码的二进制图像 |
| 压缩方式 | 未压缩的原始 XML,或压缩为 .fb2.zip |
| 字节序 | UTF-8 / Unicode 文本流 |
| 色彩空间 | 内嵌图像配置文件 |
| 通道与结构 | 语义化书籍结构(title-info、body、题词、脚注和章节) |
| 最大尺寸 | 文本长度不限 |
| 透明度 | 标记语言本身不支持(内嵌 PNG 可支持透明度) |
| 流式传输与渐进式加载 | 支持顺序解析 XML 流;脚注超链接可即时跳转到脚注 |
技术对比矩阵:FB2 对比同类产品
| 技术属性 | FB2 (当前) | EPUB | MOBI | TXT |
|---|---|---|---|---|
| 文件结构 | 单个独立的XML文本文档 | 包含XHTML/CSS/图片的ZIP归档 | PalmDOC二进制数据库 | 纯原始文本流 |
| 图片存储 | Base64嵌入在XML内部 | ZIP内部的独立图片文件 | Palm数据库中的二进制记录 | 无(仅文本) |
| 语义感知 | 高(原生支持诗歌、题词标签) | 依赖CSS类 | 原始HTML标签 | 零语义结构 |
| 主要区域 | 东欧与PocketBook | 全球/西方标准 | 旧版亚马逊Kindle | 是否支持取决于阅读设备和阅读应用。 |
常见损坏模式与十六进制恢复指南
电子书阅读器报告:"XML解析错误:第X行标签不匹配"。
根本原因: 书本正文内存在未闭合的XML标签或未转义的与号('&')。
恢复方法: 使用File2File.app FB2修复工具验证并修复XML架构标签。
安全分析与解析器攻击向量
FB2基于XML,容易受到标准的XML解析器攻击,例如XML实体扩展(“Billion Laughs”攻击)和XXE。
已知攻击向量
- 在自动化图书处理过程中读取本地服务器文件的XML外部实体(XXE)注入。
- 在构建XML DOM期间消耗内存的XML实体爆炸(“Billion Laughs”攻击)。
- 在未经加固的C语言电子书阅读器库中,在Base64图片解码期间发生堆破坏。
防御性最佳实践: 在处理 FB2 文件的 XML 解析器中禁用 DTD 处理和外部实体解析。
历史渊源与里程碑
2010FB2.ZIP成为东欧电子书阅读器(PocketBook)事实上的标准电子书格式。
2008FictionBook 2.1引入了增强的流派分类和表格结构。
2004Dmitry Gribov和Michael Matsnev创建了FB2,优先考虑语义化的图书结构而非视觉呈现。
核心优势与特点
- 纯粹的语义标记:描述文本代表的内容(诗歌、引文、脚注、题词),而不是它的外观。
- 单文件简洁性:所有插图和封面图片都作为Base64文本直接嵌入在单个XML文件中。
- 由于标准化的语义XML标签,易于自动转换、索引和翻译。
技术局限与劣势
- 缺乏现代EPUB 3中常见的高级CSS样式、自定义网页排版和动态动画。
- Base64编码使内嵌插图的文件大小增加了约33%。
- 在没有第三方固件或转换的情况下,西方电子书阅读器(Kindle、Kobo)很少支持。
趣味技术冷知识
- FB2诞生于俄罗斯,至今仍是在东欧最广泛使用的电子书格式,所有PocketBook设备均对其提供原生支持。
- 在FB2文件中,脚注存储在专用的"<notes>"正文部分,允许电子书阅读器将其显示为弹出窗口。
- 只需将.fb2文件作为XML文档打开,即可在任何标准网页浏览器中查看和验证FB2文件。
常见技术问题
哪些设备可以阅读 FB2 文件?
PocketBook 电子书阅读器、FBReader、Moon+ Reader、Calibre 以及各种 Android/iOS 阅读器应用均可原生阅读 FB2。
如何将 FB2 转换为 EPUB 或 PDF?
将您的 FB2 文件上传到 File2File.app,即可直接在浏览器中于几秒钟内将其转换为样式精美的 EPUB 或 PDF 图书。
什么是 FB2.ZIP 文件?
FB2.ZIP 文件本质上是使用 ZIP 压缩进行压缩的标准 .fb2 XML 文件,旨在节省电子书阅读器存储卡上的空间。