Print Proof — Technical Zine

QR Code ทำงานยังไง

โหมด: ไบต์ (UTF-8)เวอร์ชัน: 3ระดับแก้ไข: Mขนาด: 29×29
1 spot color · riso press

ทุกส่วนด้านล่างนี้ใช้ข้อความที่คุณพิมพ์ด้านบนสด ๆ — เลื่อนลงไปดูว่า QR Code ของคุณถูกสร้างขึ้นทีละชั้น ยังไง (encoder ทั้งหมดเขียนขึ้นเองจากศูนย์ ไม่ได้ใช้ library)

QR ของคุณ — ลองเอามือถืออีกเครื่องมาสแกนดูได้เลย

01

Section 01 / 06

กายวิภาคของ QR Code

นี่คือ “print proof” ของ QR ตัวคุณเอง — แตะป้ายรอบ ๆ, แตะโมดูลบน QR โดยตรง หรือกดป้ายชื่อด้านล่าง เพื่อดูว่าแต่ละส่วนทำหน้าที่อะไร

แตะส่วนใดก็ได้บน QR หรือเลือกป้ายชื่อ เพื่อดูคำอธิบาย
02

Section 02 / 06

ตัวอักษร → บิต

คอมพิวเตอร์ไม่รู้จัก “ตัวอักษร” รู้จักแค่เลข 0 กับ 1 — นี่คือวิธีที่ข้อความของคุณถูกแปลงเป็นบิต ก่อนจะกลายเป็น QR

โหมดที่เลือก: ไบต์ / UTF-8 (Byte)

ตัวอักษรไทย (และอีโมจิ/สัญลักษณ์พิเศษ) ใช้ มากกว่า 1 byte ต่อตัว ใน UTF-8 — สังเกตช่องขอบสีฟ้า ด้านล่างที่มีเลขฐานสองซ้อนกันหลายบรรทัด

111000001011100010101010
111000001011100010100111
111000001011100010110001
111000001011100010101010
111000001011100010010100
111000001011100010110101
00100000
B01000010
a01100001
n01101110
g01100111
k01101011
o01101111
k01101011
00100000
200110010
500110101
600110110
900111001
19ตัวอักษร
31byte (UTF-8)
44data codeword
03

Section 03 / 06

กันพัง — Reed-Solomon

QR แต่ละใบมีข้อมูล “ซ้ำซ้อน” ฝังไว้ (Reed-Solomon) เพื่อให้อ่านได้แม้บางส่วนเสียหาย ลองปรับระดับ แล้วลากนิ้ว/ลากเมาส์ทับ QR ด้านล่างดูว่าบังได้แค่ไหนก่อนที่ทฤษฎีจะบอกว่าไปไม่รอด

ระดับ M: ใช้ codeword แก้ไขข้อผิดพลาด 26 จากทั้งหมด 70 codeword (data 44)

ลากนิ้ว/เมาส์ทับ QR เพื่อจำลองความเสียหาย

บังไปแล้ว 0%เพดานทฤษฎีของระดับ M: ~15%

ยังไม่ได้บังเลย — ลองบังนิดหน่อยแล้วเอามือถืออีกเครื่องมาสแกนดู

04

Section 04 / 06

หน้ากาก (Mask)

ข้อมูลดิบอาจสร้างลายที่กล้องสับสน (เช่น เหมือนจุดค้นหาปลอม หรือมีแถบดำ/ขาวยาว ๆ) เครื่องเข้ารหัสจึงลอง “หน้ากาก” XOR ทับข้อมูล 8 แบบ ให้คะแนนความยุ่งเหยิง (penalty) แล้วเลือกแบบที่คะแนนต่ำสุด

หน้ากาก #0 — คะแนนต่ำสุด ตัวที่ QR จริงเลือกใช้

กฎการให้คะแนนคะแนน
1. เส้นสีเดียวติดกันยาว ≥5238
2. บล็อก 2×2 สีเดียวกัน231
3. ลายคล้ายจุดค้นหาปลอม40
4. สัดส่วนดำ/ขาวไม่สมดุล0
รวม509
05

Section 05 / 06

Version / ขนาด

ยิ่งข้อความยาว QR ยิ่งต้อง “เวอร์ชัน” สูงขึ้น (มีโมดูลมากขึ้น) — ลองพิมพ์เพิ่มที่ช่องด้านบนแล้วดู แท่งกราฟและ QR ขยับสด ๆ

1
2
3
4
5
6
7
8
9
10
3เวอร์ชันปัจจุบัน
29×29โมดูล
19ตัวอักษรที่พิมพ์
100%เต็มความจุ v3
06

Section 06 / 06

ข้างใน QR พร้อมเพย์

QR พร้อมเพย์ก็คือ QR Code ธรรมดา ที่ข้อความข้างในเขียนตามมาตรฐาน EMVCo — ลองแกะโครงสร้าง TLV (tag/length/value) ของ QR ตัวอย่าง (เบอร์ปลอม) ด้านล่างดู

⚠️คำเตือน: นี่คือ QR สาธิตเพื่อการศึกษาเท่านั้น เบอร์ 0800000000 เป็นเบอร์ปลอม ไม่ใช่ QR รับเงินจริง — และในชีวิตจริงอย่าสแกน QR พร้อมเพย์จากคนแปลกหน้าโดยไม่ตรวจสอบก่อน อาจเป็นมิจฉาชีพหลอกให้โอนเงินผิดบัญชี

QR พร้อมเพย์ตัวอย่าง (DEMO) — ตรวจสอบ CRC: ถูกต้อง ✓

TagความหมายValue
00 (len 2)รูปแบบ Payload (Payload Format Indicator)01
01 (len 2)วิธีเริ่มรายการ (Point of Initiation Method)11
29 (len 37)ข้อมูลบัญชีผู้รับเงิน — พร้อมเพย์ (Merchant Account Info)(ดูรายละเอียดด้านล่าง)
00 (len 16)รหัสแอปพลิเคชันพร้อมเพย์ (Application ID)A000000677010111
01 (len 13)เบอร์โทรศัพท์ผู้รับเงิน (แปลงเป็นรหัสประเทศ 0066)0066800000000
53 (len 3)รหัสสกุลเงิน (Transaction Currency)764
58 (len 2)รหัสประเทศ (Country Code)TH
59 (len 9)ชื่อร้าน/ผู้รับเงิน (Merchant Name)DEMO SHOP
60 (len 7)เมือง (Merchant City)BANGKOK
63 (len 4)รหัสตรวจสอบ CRC (CRC Checksum)CE26