โหมดการเข้ารหัส

ชื่ออื่น: โหมดข้อมูล, โหมดตัวเลข, โหมดตัวอักษรและตัวเลข, โหมดไบต์, โหมดคันจิ, encoding modes

คำนิยาม

โหมดการเข้ารหัสคือวิธีที่ QR Code อัดอักขระเป็นบิต มีสี่โหมดหลัก คือ ตัวเลข ตัวอักษรและตัวเลข ไบต์ และคันจิ และโค้ดเดียวสลับระหว่างโหมดได้

สี่โหมดหลัก

แต่ละโหมดแลกช่วงอักขระกับความหนาแน่น โหมดตัวเลขรองรับเฉพาะตัวเลขแต่อัดได้สามหลักใน 10 บิต ส่วนโหมดไบต์รองรับไบต์ใดก็ได้แต่ใช้ 8 บิตต่อตัว

โหมดตัวอักษรและตัวเลขครอบคลุมชุดอักขระ 45 ตัว ได้แก่ ตัวเลข 0–9 ตัวอักษรพิมพ์ใหญ่ A–Z ช่องว่าง และสัญลักษณ์ $ % * + - . / กับเครื่องหมายทวิภาค ตัวอักษรพิมพ์เล็กไม่อยู่ในชุดนี้ นี่คือเหตุที่ URL ที่เป็นตัวพิมพ์ใหญ่ทั้งหมดทำให้โค้ดเล็กกว่า URL เดียวกันที่เป็นตัวพิมพ์เล็ก

  • ตัวเลข: หลัก 0–9 ใช้ 10 บิตต่อ 3 หลัก
  • ตัวอักษรและตัวเลข: 45 อักขระ ใช้ 11 บิตต่อ 2 อักขระ
  • ไบต์: ค่า 8 บิตใดก็ได้ ใช้ 8 บิตต่อไบต์
  • คันจิ: อักขระสองไบต์แบบ Shift JIS ตัวละ 13 บิต

ตัวบ่งชี้โหมดและเซกเมนต์

ข้อมูลแต่ละช่วงเริ่มด้วยตัวบ่งชี้โหมด 4 บิตและจำนวนอักขระ ซึ่งความยาวขึ้นกับโหมดและเวอร์ชัน โค้ดหนึ่งมีเซกเมนต์แบบนี้ได้หลายเซกเมนต์ เช่นใช้โหมดตัวเลขกับตัวเลขยาว ๆ และโหมดไบต์กับส่วนที่เหลือ ซึ่งอาจทำให้ผลลัพธ์เล็กลง

ตัวบ่งชี้ 4 บิตอื่นๆ ระบุฟีเจอร์ ไม่ใช่ชุดอักขระ ได้แก่ ECI สำหรับประกาศการเข้ารหัสอักขระ Structured Append สำหรับแบ่งข้อมูลข้ามหลายโค้ด และ FNC1 สำหรับ GS1 และรูปแบบข้อมูลอุตสาหกรรมอื่น ตัวปิดท้ายเป็นศูนย์สี่บิตสิ้นสุดข้อมูล

  • ตัวเลข 0001 ตัวอักษรและตัวเลข 0010 ไบต์ 0100 คันจิ 1000
  • ECI 0111 Structured Append 0011
  • FNC1 ตำแหน่งแรก 0101 ตำแหน่งที่สอง 1001
  • ตัวปิดท้าย 0000

โหมดไบต์และชุดอักขระ

การตีความเริ่มต้นของโหมดไบต์ตามมาตรฐานคือ ISO-8859-1 (Latin-1) แต่ตัวสร้างโค้ดส่วนใหญ่ในปัจจุบันเขียนเป็น UTF-8 เพื่อให้ตัวอักษรมีเครื่องหมาย อักษรอื่น และอีโมจิรอดอยู่ได้ เครื่องอ่านมักตรวจพบ UTF-8 ด้วยการตรวจสอบไบต์

ในกรณีที่ต้องระบุชุดอักขระอย่างไม่กำกวม ส่วนหัว ECI ประกาศให้ชัดเจนได้ ถ้าไม่มี เครื่องอ่านอาจเดาผิดเป็นบางครั้งและแสดงตัวอักษรเพี้ยน

คำถามที่พบบ่อย

ทำไม QR Code ใหญ่ขึ้นเมื่อใช้ตัวพิมพ์เล็ก

ตัวพิมพ์เล็กไม่อยู่ในชุดตัวอักษรและตัวเลข ข้อความจึงต้องใช้โหมดไบต์ที่ 8 บิตต่ออักขระ แทนที่จะเป็น 5.5 ตัวพิมพ์ใหญ่ ตัวเลข และสัญลักษณ์ไม่กี่ตัวอัดได้แน่นกว่า

QR Code เก็บอีโมจิหรืออักษรที่ไม่ใช่ละตินได้ไหม

ได้ ในโหมดไบต์ด้วย UTF-8 ซึ่งตัวสร้างโค้ดและเครื่องอ่านบนมือถือส่วนใหญ่รองรับ อักขระแบบนี้แต่ละตัวใช้หลายไบต์ ความจุจึงลดลง

QR Code หนึ่งอันผสมข้อมูลตัวเลขกับข้อความได้ไหม

ได้ ข้อมูลแบ่งเป็นเซกเมนต์ได้ โดยแต่ละเซกเมนต์มีโหมดของตัวเอง และตัวเข้ารหัสที่ดีเลือกการแบ่งที่ให้โค้ดเล็กที่สุด

แหล่งที่มาและมาตรฐาน

คำศัพท์ทั้งหมด