Web Open Font Format (.woff)

W3C มาตรฐาน

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

ตรวจสอบไฟล์และข้อมูลเมตา

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

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

เป็นส่วนตัว - ไฟล์จะไม่ออกจากอุปกรณ์ของคุณ

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

ลายเซ็นส่วนหัวระดับไบต์

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

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

77 4F 46 46

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

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

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

สถาปัตยกรรมคอนเทนเนอร์ส่วนหัว WOFF ขนาด 44 ไบต์ ตามด้วยไดเรกทอรีตาราง, ข้อมูลตารางที่บีบอัดด้วย zlib, ข้อมูลเมตาเพิ่มเติมที่เลือกมีได้ และข้อมูลส่วนตัว
การบีบอัดใช้การบีบอัด Deflate (zlib) กับแต่ละตารางฟอนต์แยกกัน
การจัดลำดับไบต์ลำดับไบต์แบบ Big-Endian (มาตรฐาน SFNT)
พื้นที่สีสืบทอดจากตารางฟอนต์ต้นทาง
ช่องสัญญาณและโครงสร้างเส้นขอบไกลฟ์ TrueType ('glyf') หรือ PostScript ('CFF '), ค่าตัวชี้วัด และคุณลักษณะการจัดตัวพิมพ์
ขนาดสูงสุดรองรับไกลฟ์สูงสุด 65,535 ตัวต่อไฟล์ฟอนต์
ความโปร่งใสสืบทอดจากรูปแบบฟอนต์ต้นทาง
การสตรีมและแบบโปรเกรสซีฟการคลายการบีบอัดทีละตารางช่วยให้โหลดฟอนต์ผ่านสตรีมได้

ตารางเปรียบเทียบทางเทคนิค: 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 โดยระดับการประหยัดแตกต่างตามฟอนต์มักมีขนาดเล็กกว่า TTF โดยระดับการประหยัดแตกต่างตามฟอนต์มาตรฐานพื้นฐาน (100%)มาตรฐานพื้นฐาน (100%)
สภาพแวดล้อมเป้าหมายเว็บเบราว์เซอร์รุ่นเก่า (IE9+, Safari 5+)การรองรับแตกต่างกันไปตามเบราว์เซอร์ระบบปฏิบัติการเดสก์ท็อปการเผยแพร่บนเดสก์ท็อปและการพิมพ์

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • ลายเซ็นไฟล์ของ 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 เท่านั้น