tigtools

เครื่องมือแปลงข้อความเป็นไบนารี

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

ทำงานในเบราว์เซอร์ของคุณ ไม่ต้องสมัคร

ทิศทาง
ระหว่างไบต์

วิธีใช้งาน

  1. เลือก “ข้อความ → ไบต์” เพื่อเข้ารหัส หรือ “ไบต์ → ข้อความ” เพื่อถอดรหัส
  2. เลือกรูปแบบไบต์: ไบนารี เลขฐานสิบหก เลขฐานสิบ หรือเลขฐานแปด
  3. พิมพ์หรือวางข้อมูลของคุณ ผลลัพธ์และจำนวนไบต์จะอัปเดตระหว่างที่คุณพิมพ์
  4. คัดลอกผลลัพธ์ หรือสลับกลับไปเป็นอินพุตเพื่อตรวจสอบการแปลงกลับไปมา

วิธีการทำงาน

คอมพิวเตอร์เก็บข้อความเป็นไบต์ เครื่องมือนี้ใช้ UTF-8 ซึ่งเป็นการเข้ารหัสที่เว็บไซต์และระบบสมัยใหม่เกือบทั้งหมดใช้ ใน UTF-8 อักขระ ASCII 128 ตัว (ตัวอักษรอังกฤษ ตัวเลข และเครื่องหมายวรรคตอนพื้นฐาน) ใช้ตัวละ 1 ไบต์ ดังนั้น H คือ 01001000 ในเลขฐานสอง และ 48 ในเลขฐานสิบหก อักขระอื่นทั้งหมดใช้ 2 ถึง 4 ไบต์: é ใช้ 2 ไบต์ (C3 A9), € และ ☕ ใช้ 3 ไบต์ และอีโมจิส่วนใหญ่ใช้ 4 ไบต์ นี่คือเหตุผลที่จำนวนไบต์มากกว่าจำนวนอักขระได้ และทำไมอักขระหนึ่งตัวถึงกลายเป็นกลุ่ม 8 บิตหลายกลุ่ม

แต่ละไบต์เขียนได้ 4 รูปแบบทั่วไป: เลขฐานสอง 8 หลัก (00000000–11111111), เลขฐานสิบหก 2 หลัก (00–FF), เลขฐานสิบ (0–255) หรือเลขฐานแปด 3 หลัก (000–377) เมื่อเขียนไบต์โดยไม่มีตัวคั่น ค่าเลขฐานสอง ฐานสิบหก และฐานแปดจะถูกเติมให้มีความกว้างคงที่ และค่าเลขฐานสิบจะถูกเติมเป็น 3 หลัก เพื่อให้แยกกลับได้อย่างไม่กำกวม

การถอดรหัสยืดหยุ่นต่อการจัดรูปแบบ: ช่องว่าง ขึ้นบรรทัดใหม่ จุลภาค และอัฒภาคระหว่างไบต์จะถูกละเว้น เช่นเดียวกับคำนำหน้า 0x และ 0b และ \x escape ทุกกลุ่มจะถูกตรวจสอบ ตัวเลขที่ใช้ไม่ได้ในรูปแบบที่เลือก หรือค่าที่เกิน 255 จะถูกรายงานพร้อมตำแหน่งของไบต์ หลังถอดรหัส ไบต์จะถูกตรวจสอบว่าเป็น UTF-8 ที่ถูกต้อง และระบบจะแจ้งหากไม่ใช่ข้อความ

อักขระที่ประกอบด้วยหลาย code point เช่น ธงหรืออีโมจิที่มีสีผิว จะถูกนับเป็นหลายอักขระที่นี่ เนื่องจากแต่ละ code point ถูกเข้ารหัสแยกกัน

ตัวอย่าง

“Hi” แบบคลาสสิกในเลขฐานสอง

H คือ ASCII 72 และ i คือ 105 ดังนั้น “Hi” จึงเป็น 01001000 01101001 ในเลขฐานสอง, 48 69 ในเลขฐานสิบหก และ 72 105 ในเลขฐานสิบ: 2 อักขระ 2 ไบต์ 16 บิต

ทำไม “Café” จึงเป็น 5 ไบต์

C, a และ f ใช้ตัวละ 1 ไบต์ แต่ é ใช้ 2 ไบต์ใน UTF-8: 11000011 10101001 (C3 A9) คำนี้มี 4 อักขระแต่ใช้ 5 ไบต์ ซึ่งมีผลกับขีดจำกัดคอลัมน์ฐานข้อมูลและฟิลด์โปรโตคอลที่วัดเป็นไบต์

การอ่าน hex dump

ดีบักเกอร์แสดง 48 65 6c 6c 6f 2c 20 e4 b8 96 e7 95 8c วางค่านี้โดยเลือก “ไบต์ → ข้อความ” และเลขฐานสิบหก จะได้ “Hello, 世界”; อักษรจีนแต่ละตัวใช้ 3 ไบต์

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

ทำไมอักขระหนึ่งตัวจึงกลายเป็น 16, 24 หรือ 32 บิต?

ใน UTF-8 มีเพียงอักขระ ASCII เท่านั้นที่อยู่ใน 1 ไบต์ (8 บิต) ตัวอักษรที่มีเครื่องหมายเสริมและตัวอักษรในระบบเขียนอื่นส่วนใหญ่ใช้ 2 ไบต์ ภาษาจีน ญี่ปุ่น เกาหลี และสัญลักษณ์จำนวนมากใช้ 3 ไบต์ และอีโมจิใช้ 4 ไบต์ แต่ละไบต์จะแสดงเป็นกลุ่มของตัวเอง

นี่คือ ASCII หรือ UTF-8

UTF-8 สำหรับข้อความภาษาอังกฤษล้วน ผลลัพธ์จะเหมือนกับ ASCII เพราะ UTF-8 ถูกออกแบบมาให้เข้ากันได้กับ ASCII อักขระนอกเหนือจาก ASCII จะไม่สามารถแสดงด้วย ASCII เพียงอย่างเดียวได้

ทำไมจึงเกิดข้อผิดพลาดเมื่อถอดรหัสไบนารี

แต่ละไบต์ต้องมีเลขฐานสองอย่างมาก 8 หลัก และมีเฉพาะ 0 กับ 1 เท่านั้น หากไม่มีช่องว่าง จำนวนหลักทั้งหมดต้องหารด้วย 8 ลงตัว ข้อความแสดงข้อผิดพลาดจะระบุไบต์ที่ไม่สามารถอ่านได้

“UTF-8 ไม่ถูกต้อง” หมายความว่าอย่างไร

ไบต์เหล่านั้นไม่เป็นลำดับ UTF-8 ที่ถูกต้อง เช่น ไบต์เดี่ยวที่มีค่ามากกว่า 127 หรือลำดับที่ถูกตัดกลางคัน ข้อมูลอาจมาจากไฟล์ที่ใช้การเข้ารหัสอื่น เช่น Windows-1252 หรืออาจไม่ใช่ข้อความเลยก็ได้

ความเป็นส่วนตัว

การแปลงทำงานในเบราว์เซอร์ของคุณโดยใช้ตัวเข้ารหัสและตัวถอดรหัส UTF-8 ในตัว ข้อความของคุณจะไม่ถูกอัปโหลด จัดเก็บ หรือรวมอยู่ในข้อมูลวิเคราะห์