Web 开放字体格式 (.woff)

W3C Tiêu chuẩn

Web Open Font Format (WOFF) là định dạng phông chữ web mở thế hệ đầu tiên mang tính lịch sử được W3C chứng nhận, bọc các phông chữ TrueType hoặc OpenType tiêu chuẩn bằng thuật nén zlib và siêu dữ liệu cấp phép XML.

Kiểm tra & Siêu dữ liệu

Các hệ điều hành và trình phân tích tệp nhận dạng tệp WOFF bằng cách kiểm tra chuỗi byte nhị phân đầu tệp:

Chọn hoặc thả tệp vào đây

Chuyển đổi 100% riêng tư trong trình duyệt - tệp không bao giờ rời khỏi thiết bị của bạn

hoặc dán Ctrl+V
Cam kết bảo mật không truyền tải qua mạng: 0 byte được tải lên máy chủ bên ngoài. Toàn bộ quá trình xử lý diễn ra cục bộ trong hộp cát trình duyệt của bạn.

Chữ ký tiêu đề ở cấp độ Byte (Magic Bytes)

Các hệ điều hành và trình phân tích tệp nhận dạng tệp WOFF bằng cách kiểm tra chuỗi byte nhị phân đầu tệp:

CHỮ KÝ HEX (OFFSET 0):

77 4F 46 46

BIỂU DIỄN ASCII: wOFF

Tiêu chuẩn hóa: W3C Recommendation (2012)

Thông số kỹ thuật

Kiến trúc Container44-byte WOFF header followed by table directory, zlib-compressed table data, optional extended metadata, and private data
NénDeflate (zlib) compression applied to each individual font table
Thứ tự byte EndiannessBig-Endian (SFNT standard)
Không gian màuInherited from underlying font tables
Kênh & Cấu trúcTrueType ('glyf') or PostScript ('CFF ') glyph outlines, metrics, and typographic features
Kích thước tối đaUp to 65,535 glyphs per font file
Độ trong suốtInherited from underlying font format
Truyền phát & Tăng dầnTable-by-table decompression enables streaming font loading

Ma trận so sánh kỹ thuật: WOFF so với các đối thủ

Thuộc tính kỹ thuậtWOFF (Hiện tại)WOFF2TTFOTF
Bộ giải mã nénDeflate (zlib) theo bảngBrotli với tiền xử lý bảngSFNT chưa nénSFNT chưa nén
Chữ ký ma thuậtwOFF (0x77 0x4F 0x46 0x46)wOF2 (0x77 0x4F 0x46 0x32)0x00 0x01 0x00 0x00OTTO (0x4F 0x54 0x54 0x4F)
Kích thước tệp tương đốiNhỏ hơn ~40% so với TTFNhỏ hơn ~60% so với TTFTiêu chuẩn cơ sở (100%)Tiêu chuẩn cơ sở (100%)
Môi trường mục tiêuTrình duyệt web cũ (IE9+, Safari 5+)Trình duyệt web hiện đại (Toàn cầu)Hệ điều hành máy tính để bànXuất bản trên máy tính để bàn & in ấn

Các chế độ hỏng hóc phổ biến & Hướng dẫn khôi phục Hex

Cảnh báo bảng điều khiển trình duyệt: 'Không thể giải mã phông chữ đã tải xuống: Lỗi phân tích cú pháp OTS'.

Nguyên nhân gốc rễ: Không khớp trong chiều dài bảng chưa nén được khai báo hoặc luồng zlib bị hỏng.

Khắc phục: Nén lại các bảng phông chữ hoặc chuyển đổi sang WOFF2 bằng Trình chuyển đổi phông chữ File2File.

Phân tích bảo mật & Các vectơ tấn công bộ phân tích cú pháp

Trình duyệt web phân tích cú pháp các tệp WOFF được tải xuống từ các miền web không đáng tin cậy bằng Trình khử trùng phông chữ mở (OTS) để chặn các payload khai thác.

Các Véc-tơ Tấn công Đã biết

  • Đọc quá giới hạn bộ đệm trong quá trình giải nén zlib của các khối bảng phông chữ bị hỏng.
  • Các trường độ dài bảng không khớp kích hoạt lỗi tràn bộ đệm heap trong các trình kết xuất phông chữ.
  • Từ chối dịch vụ thông qua kiệt quệ bộ nhớ trong quá trình mở rộng bảng phông chữ.

Thực tiễn Tốt nhất về Phòng thủ:

Nguồn gốc lịch sử & Các cột mốc

2018Được kế nhiệm bởi WOTF2 làm tiêu chuẩn phông chữ web ưu tiên do có khả năng nén Brotli vượt trội.
2012W3C chính thức xuất bản WOFF 1.0 dưới dạng Khuyến nghị Tiêu chuẩn Web chính thức.
2009Henrik Rydgård, Tal Leming và Jonathan Kew định rõ WOFF để giải quyết các mối quan tâm về cấp phép phông chữ web.

Ưu điểm & Lợi ích chính

  • Giảm kích thước tệp phông chữ web từ 30% đến 50% so với tệp TTF hoặc OTF thô chưa nén.
  • Khả năng tương thích ngược phổ quát trên mọi trình duyệt web máy tính để bàn và di động được phát hành kể từ năm 2011.
  • Bao gồm một khối siêu dữ liệu XML tùy chọn cho cấp phép phông chữ, thông tin ghi công tác giả và thông tin bản quyền của xưởng đúc.

Hạn chế & Nhược điểm kỹ thuật

  • Đã bị WOFF2 thay thế, có khả năng nén nhỏ hơn khoảng 30% bằng thuật toán Brotli.
  • Không thể cài đặt trực tiếp vào hệ điều hành máy tính để bàn (Windows/Mac) mà không cần chuyển đổi sang TTF/OTF.
  • Thuật toán nén zlib cũ kém hiệu quả hơn các bộ mã hóa entropy hiện đại.

Thông tin kỹ thuật thú vị

  • Các byte ma thuật cho WOFF 1.0 là 'wOFF' (0x77 0x4F 0x46 0x46), trong khi WOFF 2.0 sử dụng 'wOF2'.
  • Các xưởng đúc kiểu chữ đồng ý cho phép phông chữ của họ trên web chỉ sau khi WOFF được tạo ra, bởi vì vùng chứa chuyên biệt của nó phân biệt phông chữ web với các phông chữ máy tính để bàn có thể sao chép trái phép.
  • WOFF ban đầu được triển khai trong Firefox 3.6 vào năm 2010 trước khi trở thành khuyến nghị chính thức của W3C.

Các câu hỏi kỹ thuật thường gặp

Sự khác biệt giữa WOFF và WOFF2 là gì?

WOFF sử dụng nén zlib, trong khi WOFF2 sử dụng thuật toán Brotli mới hơn của Google và các phép biến đổi bảng, tạo ra các tệp có dung lượng nhỏ hơn khoảng 30% so với WOFF.

Làm cách nào để chuyển đổi font WOFF sang TTF hoặc OTF để sử dụng trên máy tính?

Bạn có thể chuyển đổi các tệp WOFF thành font TTF hoặc OTF có thể cài đặt trên máy tính trong vài giây bằng cách sử dụng File2File.app trực tiếp trong trình duyệt web của bạn.

Tôi có còn cần WOFF 1.0 trên các trang web hiện đại không?

Không. Tất cả các trình duyệt hiện đại đều hỗ trợ nguyên bản WOFF2. WOFF 1.0 chỉ cần thiết nếu bạn bắt buộc phải hỗ trợ các trình duyệt cũ đã lỗi thời như Internet Explorer.