Web 开放字体格式 (.woff)

W3C มาตรฐาน

Web Open Font Format (WOFF) คือฟอร์แมตฟอนต์เว็บมาตรฐานเปิดเจเนอเรชันแรกรุ่นประวัติศาสตร์ที่ได้รับการรับรองจาก W3C โดยการห่อหุ้มฟอนต์ TrueType หรือ OpenType มาตรฐานเข้ากับการบีบอัด zlib และข้อมูลเมตาดาตะลิขสิทธิ์แบบ XML

ตรวจสอบและดู Metadata

ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ WOFF โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:

เลือกหรือวางไฟล์ที่นี่

การแปลงไฟล์แบบส่วนตัว 100% ในเบราว์เซอร์ - ไฟล์จะไม่ rời ออกจากอุปกรณ์ของคุณ

หรือวาง Ctrl+V
การรับประกันความเป็นส่วนตัวแบบไม่มีการส่งผ่านเครือข่าย: อัปโหลด 0 ไบต์ไปยังเซิร์ฟเวอร์ภายนอก การประมวลผลทั้งหมดเกิดขึ้นภายในแซนด์บ็อกซ์ของเบราว์เซอร์ของคุณ

ลายเซ็นส่วนหัวในระดับไบต์ (Magic Bytes)

ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ WOFF โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:

ลายเซ็น HEX (OFFSET 0):

77 4F 46 46

การแสดงผลรูปแบบ ASCII: wOFF

มาตรฐาน: W3C Recommendation (2012)

ข้อมูลจำเพาะทางเทคนิค

สถาปัตยกรรมคอนเทนเนอร์44-byte WOFF header followed by table directory, zlib-compressed table data, optional extended metadata, and private data
การบีบอัดDeflate (zlib) compression applied to each individual font table
การจัดลำดับไบต์ (Byte Endianness)Big-Endian (SFNT standard)
พื้นที่สีInherited from underlying font tables
ช่องสัญญาณและโครงสร้างTrueType ('glyf') or PostScript ('CFF ') glyph outlines, metrics, and typographic features
ขนาดสูงสุดUp to 65,535 glyphs per font file
ความโปร่งใสInherited from underlying font format
การสตรีมและแบบโปรเกรสซีฟTable-by-table decompression enables streaming font loading

ตารางเปรียบเทียบทางเทคนิค: WOFF กับคู่แข่ง

คุณลักษณะทางเทคนิคWOFF (ปัจจุบัน)WOFF2TTFOTF
ตัวแปลงสัญญาณการบีบอัดDeflate (zlib) ต่อตารางBrotli พร้อมการประมวลผลตารางล่วงหน้าSFNT แบบไม่บีบอัดSFNT แบบไม่บีบอัด
ลายเซ็นต์เวทมนตร์wOFF (0x77 0x4F 0x46 0x46)wOF2 (0x77 0x4F 0x46 0x32)0x00 0x01 0x00 0x00OTTO (0x4F 0x54 0x54 0x4F)
ขนาดไฟล์สัมพัทธ์เล็กกว่า TTF ประมาณ 40%เล็กกว่า TTF ประมาณ 60%มาตรฐานพื้นฐาน (100%)มาตรฐานพื้นฐาน (100%)
สภาพแวดล้อมเป้าหมายเว็บเบราว์เซอร์รุ่นเก่า (IE9+, Safari 5+)เว็บเบราว์เซอร์สมัยใหม่ (สากล)ระบบปฏิบัติการเดสก์ท็อปการเผยแพร่บนเดสก์ท็อปและการพิมพ์

รูปแบบความเสียหายทั่วไปและคู่มือการกู้คืน Hex

คำเตือนในคอนโซลเบราว์เซอร์: 'Failed to decode downloaded font: OTS parsing error'

สาเหตุหลัก: ความไม่ตรงกันของความยาวตารางที่ยังไม่บีบอัดที่ประกาศไว้ หรือสตรีม zlib เสียหาย

การกู้คืน: บีบอัดตารางฟอนต์ใหม่หรือแปลงเป็น WOFF2 โดยใช้ File2File Font Converter

การวิเคราะห์ความปลอดภัยและเวกเตอร์การโจมตีตัวแยกวิเคราะห์

เว็บเบราว์เซอร์จะวิเคราะห์ไฟล์ WOFF ที่ดาวน์โหลดมาจากโดเมนเว็บที่ไม่น่าเชื่อถือโดยใช้ OpenType Sanitizer (OTS) เพื่อบล็อกเพย์โลดการโจมตี

เวกเตอร์การโจมตีที่ทราบ

  • การอ่านบัฟเฟอร์เกิน (Buffer over-read) ระหว่างการคลายการบีบอัด zlib ของส่วนของตารางฟอนต์ที่เสียหาย
  • ฟิลด์ความยาวตารางที่ไม่ตรงกันซึ่งทริกเกอร์บัฟเฟอร์โอเวอร์โฟลว์ของฮีปในตัวเรนเดอร์ฟอนต์
  • การปฏิเสธการให้บริการ (Denial of service) ผ่านการใช้หน่วยความจำจนหมดระหว่างการขยายตารางฟอนต์

แนวทางปฏิบัติที่ดีที่สุดในการป้องกัน:

ประวัติความเป็นมาและเหตุการณ์สำคัญ

2018ถูกแทนที่ด้วย WOTF2 ในฐานะมาตรฐานฟอนต์เว็บหลักเนื่องจากการบีบอัด Brotli ที่เหนือกว่า
2012W3C เผยแพร่ WOFF 1.0 อย่างเป็นทางการในฐานะคำแนะนำมาตรฐานเว็บอย่างเป็นทางการ
2009Henrik Rydgård, Tal Leming และ Jonathan Kew กำหนดสเปก WOFF เพื่อแก้ไขข้อกังวลด้านลิขสิทธิ์ฟอนต์บนเว็บ

ข้อได้เปรียบและจุดเด่นสำคัญ

  • ลดขนาดไฟล์ฟอนต์เว็บลง 30% ถึง 50% เมื่อเทียบกับไฟล์ TTF หรือ OTF ดิบที่ยังไม่บีบอัด
  • ความเข้ากันได้แบบย้อนหลังระดับสากลในเบราว์เซอร์เดสก์ท็อปและมือถือทุกตัวที่เปิดตัวตั้งแต่ปี 2011
  • รวมบล็อกเมตาดาตะ XML ทางเลือกสำหรับลิขสิทธิ์ฟอนต์ เครดิตผู้สร้าง และข้อมูลลิขสิทธิ์ของโรงหล่อฟอนต์

ข้อจำกัดทางเทคนิคและข้อควรพิจารณา

  • ถูกแทนที่ด้วย WOFF2 ซึ่งบีบอัดได้เล็กกว่าประมาณ 30% โดยใช้อัลกอริทึม Brotli
  • ไม่สามารถติดตั้งลงในระบบปฏิบัติการเดสก์ท็อป (Windows/Mac) ได้โดยตรงโดยไม่ต้องแปลงเป็น TTF/OTF ก่อน
  • อัลกอริทึมการบีบอัด zlib รุ่นเก่ามีประสิทธิภาพน้อยกว่าตัวเข้ารหัสเอนโทรปีสมัยใหม่

เกร็ดความรู้ทางเทคนิคที่น่าสนใจ

  • ไบต์วิเศษ (magic bytes) สำหรับ WOFF 1.0 คือ 'wOFF' (0x77 0x4F 0x46 0x46) ในขณะที่ WOFF 2.0 ใช้ 'wOF2'
  • โรงหล่อฟอนต์ตกลงที่จะอนุญาตให้นำฟอนต์ของตนมาใช้บนเว็บก็ต่อเมื่อมีการสร้าง WOFF ขึ้นมา เนื่องจากคอนเทนเนอร์พิเศษนี้ช่วยแยกแยะฟอนต์เว็บออกจากฟอนต์เดสก์ท็อปที่ถูกละเมิดลิขสิทธิ์ได้
  • WOFF เดิมทีถูกนำไปใช้ใน Firefox 3.6 ในปี 2010 ก่อนที่จะกลายเป็นคำแนะนำอย่างเป็นทางการของ W3C

คำถามทางเทคนิคที่พบบ่อย

ความแตกต่างระหว่าง WOFF และ WOFF2 คืออะไร

WOFF ใช้การบีบอัด zlib ในขณะที่ WOFF2 ใช้ อัลกอริทึม Brotli ที่ใหม่กว่าของ Google และการแปลงตาราง ส่งผลให้ไฟล์มีขนาดเล็กกว่า WOFF ประมาณ 30%

ฉันจะแปลงฟอนต์ WOFF เป็น TTF หรือ OTF สำหรับใช้บนเดสก์ท็อปได้อย่างไร

คุณสามารถแปลงไฟล์ WOFF เป็นฟอนต์ TTF หรือ OTF สำหรับเดสก์ท็อปที่ติดตั้งได้ภายในไม่กี่วินาทีโดยใช้ File2File.app บนเว็บเบราว์เซอร์ของคุณ

ฉันยังจำเป็นต้องใช้ WOFF 1.0 บนเว็บไซต์สมัยใหม่อยู่หรือไม่

ไม่จำเป็น เบราว์เซอร์สมัยใหม่ทั้งหมดรองรับ WOFF2 ตามค่าเริ่มต้นแล้ว WOFF 1.0 จะจำเป็นเฉพาะในกรณีที่คุณต้องรองรับเบราว์เซอร์รุ่นเก่าที่ล้าสมัย เช่น Internet Explorer เท่านั้น