วิธีแปลง hex เป็นข้อความ
- วางสตริง hex ของคุณ เช่น
48 65 6C 6C 6F,0x48,0x65หรือ\x48\x65จะใช้ตัวคั่นแบบใดผสมกันก็ได้ - ข้อความที่ถอดรหัสแล้วจะแสดงทันที ถ้าตัวอักษรดูผิดเพี้ยน ให้เลือกการเข้ารหัสอื่น: UTF-8, ASCII/Latin-1 หรือ UTF-16
- คัดลอกข้อความหรือดาวน์โหลดเป็นไฟล์ กด สลับ เพื่อแปลงข้อความกลับเป็น hex
การถอดรหัส hex เป็น ASCII ทำงานอย่างไร
เลข hex ทุกคู่คือหนึ่งไบต์ที่มีค่าตั้งแต่ 00 ถึง FF ใน ASCII และ UTF-8 ไบต์ 20–7E เป็นอักขระที่พิมพ์ได้ ดังนั้น 48 65 6C 6C 6F จึงอ่านได้เป็น H, e, l, l, o: “Hello” ส่วนอักขระที่อยู่นอก ASCII จะใช้หลายไบต์ใน UTF-8 เช่น อักษรไทยใช้ 3 ไบต์ต่อตัว
| Hex | อักขระ |
|---|---|
0A | Line feed (ขึ้นบรรทัดใหม่) |
0D | Carriage return (ปัดแคร่) |
20 | ช่องว่าง |
21 / 2C / 2E | ! / , / . |
30–39 | ตัวเลข 0–9 |
41–5A | ตัวพิมพ์ใหญ่ A–Z |
61–7A | ตัวพิมพ์เล็ก a–z |
C3 A9 | é ใน UTF-8 |
E2 82 AC | € ใน UTF-8 |
การเลือกการเข้ารหัสอักขระที่ถูกต้อง
- UTF-8 – มาตรฐานบนเว็บ รวมถึงในไฟล์และ API ส่วนใหญ่ ข้อความ ASCII ธรรมดาก็เป็น UTF-8 ที่ถูกต้องเช่นกัน
- ASCII / Latin-1 (Windows-1252) – หนึ่งไบต์ต่ออักขระ สำหรับข้อความภาษายุโรปตะวันตกจากระบบรุ่นเก่า ทุกไบต์แปลงเป็นอักขระได้ การถอดรหัสจึงไม่มีวันล้มเหลว
- UTF-16 LE/BE – สองไบต์ต่ออักขระ ใช้ใน Windows API, Java และสตริงของ JavaScript:
48 00 69 00คือ “Hi” ใน UTF-16 LE
หากเห็นสัญลักษณ์ � แสดงว่ามีบางไบต์ที่ไม่ถูกต้องในการเข้ารหัสที่เลือก – หรือ hex นั้นเป็นข้อมูลไบนารี เช่น รูปภาพ ค่า hash หรือข้อมูลที่ถูกบีบอัด ไม่ใช่ข้อความ
แปลง hex เป็น string ในโค้ด
- Python:
bytes.fromhex('48656c6c6f').decode() - Node.js:
Buffer.from('48656c6c6f', 'hex').toString() - JavaScript บนเบราว์เซอร์:
new TextDecoder().decode(Uint8Array.from('48656c6c6f'.match(/../g), (h) => parseInt(h, 16))) - Linux และ macOS:
echo 48656c6c6f | xxd -r -p
คำถามที่พบบ่อย
แปลง hex เป็นข้อความกับ hex เป็น ASCII ต่างกันอย่างไร?
ASCII มีอักขระ 128 ตัว (ไบต์ 00–7F): ตัวอักษรภาษาอังกฤษ ตัวเลข และเครื่องหมายวรรคตอน ส่วนการแปลง hex เป็นข้อความยังรวมถึงอักขระภาษาอื่น ๆ เช่น ภาษาไทย และอีโมจิ ซึ่ง UTF-8 เก็บไว้ใน 2–4 ไบต์ สำหรับข้อความภาษาอังกฤษล้วน ทั้งสองแบบให้ผลลัพธ์เหมือนกัน
ทำไมจึงขึ้นข้อผิดพลาดว่าไบต์ไม่ครบ?
แต่ละไบต์ต้องมีเลขฐานสิบหกสองหลักพอดี ถ้าจำนวนหลักเป็นเลขคี่ มักแปลว่าขาด 0 ที่นำหน้า (ให้เขียน 0A ไม่ใช่ A) หรือมีอักขระหายไประหว่างการคัดลอก ข้อความแจ้งเตือนจะบอกตำแหน่งที่เกิดปัญหา
ถอดรหัส hex ที่มี prefix 0x หรือ \x ได้ไหม?
ได้ prefix อย่าง 0x, \x และ % รวมถึงช่องว่าง การขึ้นบรรทัดใหม่ คอมมา โคลอน และขีด จะถูกลบออกโดยอัตโนมัติ คุณจึงวางอาร์เรย์ภาษา C, byte string ของ Python และ hex dump ได้โดยตรง
ข้อมูลของฉันถูกอัปโหลดไปที่ใดหรือไม่?
ไม่ hex จะถูกถอดรหัสด้วย JavaScript ในเบราว์เซอร์ของคุณ และไม่ออกจากอุปกรณ์ของคุณเลย