FictionBook 2.0电子书 (.fb2)
FictionBook 标准FictionBook 2.0 (FB2) 是一种流行的开放式、基于语义的XML电子书格式,将整本书的文本、排版、元数据和内嵌封面插图打包到一个独立的XML文件中。
将 FB2 转换为 EPUB
免费的浏览器端 FB2 转 EPUB 转换器。在您的设备上即时转换文件。
检查与元数据
操作系统和文件分析器通过检查开头的二进制字节序列来识别 FB2 文件:
字节级文件头签名 (Magic Bytes)
操作系统和文件分析器通过检查开头的二进制字节序列来识别 FB2 文件:
十六进制签名 (偏移量 0):
3C 3F 78 6D 6CASCII 表示形式: <?xml
标准化: FictionBook Open XML Specification
技术规格
| 容器架构 | Single self-contained XML document containing metadata, body chapters, poems, epigraphs, and Base64-encoded binary images |
| 压缩方式 | Uncompressed raw XML or zipped as .fb2.zip |
| 字节序 | UTF-8 / Unicode text stream |
| 色彩空间 | Embedded image profiles |
| 通道与结构 | Semantic book structure (title-info, body, epigraphs, footnotes, sections) |
| 最大尺寸 | Unbounded text length |
| 透明度 | None in markup (embedded PNGs support transparency) |
| 流式传输与渐进式加载 | Sequential XML stream; footnote hyperlinks provide instant footnote jumps |
技术对比矩阵:FB2 对比同类产品
| 技术属性 | FB2 (当前) | EPUB | MOBI | TXT |
|---|---|---|---|---|
| 文件结构 | 单个独立的XML文本文档 | 包含XHTML/CSS/图片的ZIP归档 | PalmDOC二进制数据库 | 纯原始文本流 |
| 图片存储 | Base64嵌入在XML内部 | ZIP内部的独立图片文件 | Palm数据库中的二进制记录 | 无(仅文本) |
| 语义感知 | 高(原生支持诗歌、题词标签) | 依赖CSS类 | 原始HTML标签 | 零语义结构 |
| 主要区域 | 东欧与PocketBook | 全球/西方标准 | 旧版亚马逊Kindle | 通用 |
常见损坏模式与十六进制恢复指南
电子书阅读器报告:"XML解析错误:第X行标签不匹配"。
根本原因: 书本正文内存在未闭合的XML标签或未转义的与号('&')。
恢复方法: 使用File2File FB2修复工具验证并修复XML架构标签。
安全分析与解析器攻击向量
FB2基于XML,容易受到标准的XML解析器攻击,例如XML实体扩展(数十亿笑话攻击)和XXE。
已知攻击向量
- 在自动化图书处理过程中读取本地服务器文件的XML外部实体(XXE)注入。
- 在构建XML DOM期间消耗内存的XML实体爆炸(数十亿笑话攻击)。
- 在未经加固的C语言电子书阅读器库中,在Base64图片解码期间发生堆破坏。
防御性最佳实践:
历史渊源与里程碑
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 文件,旨在节省电子书阅读器存储卡上的空间。