ตัวถอดรหัส URL
ตัวถอดรหัส URL เป็นเครื่องมือฟรีที่แปลงข้อความ URL ซึ่งเข้ารหัสแบบเปอร์เซ็นต์ให้กลับเป็นข้อความต้นฉบับ
การถอดรหัส URL ทำอะไรบ้าง?
การถอดรหัส URL จะย้อนการหลีกอักขระที่ใช้ส่งช่องว่าง เครื่องหมายวรรคตอน และไบต์อื่นๆ ผ่าน URL รวมถึงไวยากรณ์ที่กำหนดให้ใช้การเข้ารหัสแบบเปอร์เซ็นต์ การเข้ารหัสนี้แทนไบต์หนึ่งไบต์ด้วยเครื่องหมายเปอร์เซ็นต์ ตามด้วยเลขฐานสิบหกสองหลัก ส่วนการเข้ารหัส URL แบบฟอร์มจะใช้ + แทนช่องว่างด้วย ตัวอย่างเช่น ช่องว่างอาจเขียนเป็น %20 และเครื่องหมายแอมเพอร์แซนด์เป็น %26
ตัวอย่างสั้นๆ ก่อนและหลังถอดรหัส:
ข้อมูลเข้าที่เข้ารหัสแล้ว: red%20%26%20blue
ผลลัพธ์ที่ถอดรหัสแล้ว: red & blue
ต้องใช้การเข้ารหัสนี้เพราะอักขระบางตัวมีความหมายเชิงโครงสร้างใน URL เครื่องหมายคำถามใช้แบ่งส่วนคำค้นหาของ URL ขณะที่ข้อมูลคำค้นหาแบบฟอร์มมักใช้เครื่องหมายแอมเพอร์แซนด์จริงเป็นตัวแบ่งช่องข้อมูล การเข้ารหัสอักขระเหล่านี้ทำให้แอปพลิเคชันส่งอักขระดังกล่าวในฐานะข้อมูลได้
การเข้ารหัส URL ไม่ใช่การเข้ารหัสลับและไม่ได้ช่วยปกปิดข้อมูล ใครก็ตามที่อ่านค่าที่เข้ารหัสได้ก็สามารถถอดรหัสได้เช่นกัน อย่าถือว่ารหัสผ่าน โทเค็นการเข้าถึง หรือข้อมูลส่วนบุคคลที่เข้ารหัสแบบเปอร์เซ็นต์เป็นข้อมูลที่ได้รับการปกป้องแล้ว
ใช้ตัวถอดรหัส URL อย่างไร?
วางหรือป้อนข้อความที่เข้ารหัสไว้ ประมวลผล แล้วดูค่าที่กู้คืนได้ในช่องผลลัพธ์ ถอดรหัส URL เครื่องมือนี้ใช้ฟังก์ชัน urldecode ของ PHP จึงแปลงลำดับ %HH ที่ถูกต้องและตีความเครื่องหมายบวกเป็นช่องว่าง
- คัดลอกองค์ประกอบที่เข้ารหัสแล้ว เช่น ค่าของพารามิเตอร์คำค้นหา
- ป้อนค่าที่เข้ารหัสแบบ URL โดยไม่ต้องใส่เครื่องหมายอัญประกาศเพิ่ม เว้นแต่เครื่องหมายดังกล่าวจะเป็นส่วนหนึ่งของค่าจริงๆ
- ประมวลผลข้อมูลเข้า URL แล้วตรวจสอบผลลัพธ์ในช่อง ถอดรหัส URL
- หากผลลัพธ์ยังมีลำดับอย่าง %2F หรือ %20 ให้ตรวจสอบว่าต้นทางถูกเข้ารหัสมากกว่าหนึ่งครั้งหรือไม่ ก่อนถอดรหัสซ้ำ
การประมวลผลเกิดขึ้นบนเซิร์ฟเวอร์ ข้อมูลที่คุณป้อนจะส่งไปยังเซิร์ฟเวอร์ผ่าน HTTPS และไม่มีการจัดเก็บ แต่ข้อมูลจะออกจากอุปกรณ์ของคุณระหว่างประมวลผล อย่าวางข้อมูลลับลงในตัวถอดรหัส URL นี้ เว้นแต่การประมวลผลฝั่งเซิร์ฟเวอร์จะเหมาะสมกับข้อมูลดังกล่าว
การเข้ารหัส URL ใช้ที่ไหนบ้าง?
โดยทั่วไปจะพบการเข้ารหัส URL ในสตริงคำค้นหา การส่งแบบฟอร์ม และค่าที่ฝังอยู่ในลิงก์ นอกจากนี้ยังพบได้ในตำแหน่งที่สังเกตเห็นได้ยากกว่า ซึ่งข้อมูลต้องส่งผ่านรูปแบบข้อความที่มีข้อจำกัด
- สตริงคำค้นหา: การค้นหา "tea & cake" อาจแสดงเป็น q=tea+%26+cake
- URI ข้อมูล: ข้อมูลข้อความสามารถเข้ารหัสแบบเปอร์เซ็นต์ต่อจากชนิดสื่อได้ แม้ว่า Base64 จะเป็นอีกรูปแบบที่ใช้กันทั่วไป
- ลิงก์อีเมล: ลิงก์ mailto อาจเข้ารหัสช่องว่าง การขึ้นบรรทัดใหม่ และเครื่องหมายวรรคตอนในพารามิเตอร์หัวเรื่องหรือเนื้อหา ส่วนการเข้ารหัสเพื่อถ่ายโอนแบบ MIME ที่ใช้ภายในข้อความอีเมลเป็นรูปแบบที่แยกต่างหาก
- เพย์โหลด JSON: JSON มีกฎการหลีกอักขระของตัวเอง แต่สตริง JSON อาจมี URL หรือค่าคำค้นหาที่เข้ารหัสไว้แล้ว ซึ่งต้องถอดรหัสแยกต่างหาก
- โดเมนสากล: ป้ายชื่อโดเมนที่มีอักขระนอก ASCII โดยทั่วไปใช้ Punycode ไม่ใช่การเข้ารหัสแบบเปอร์เซ็นต์ แต่ส่วนพาธและคำค้นหายังคงมีไบต์ UTF-8 ที่เข้ารหัสแบบเปอร์เซ็นต์ได้
หากข้อความที่เข้ารหัสเป็นป้ายชื่อโดเมนที่ขึ้นต้นด้วย xn-- ให้ใช้ตัวแปลง IDN Punycode ตัวถอดรหัส URL มีไว้สำหรับองค์ประกอบ URL ที่เข้ารหัสแบบเปอร์เซ็นต์ ไม่ใช่สำหรับแปลง Punycode
ตัวอย่างการถอดรหัส URL
ตัวอย่างต่อไปนี้แสดงข้อมูลเข้าที่พบบ่อยและข้อความหลังถอดรหัสที่ตรงกัน
- hello%20world จะกลายเป็น hello world
- name=Tom+Jones จะกลายเป็น name=Tom Jones
- fish%26chips จะกลายเป็น fish&chips
- %C2%A3 จะกลายเป็น £ เมื่อไบต์นั้นแทนข้อความ UTF-8
- %E6%9D%B1%E4%BA%AC จะกลายเป็น 東京 เมื่อตีความเป็น UTF-8
- 100%25 จะกลายเป็น 100%
โดยทั่วไป ตัวอักษร ตัวเลข และเครื่องหมายวรรคตอนที่ไม่ได้เข้ารหัสจะคงอยู่ตามที่ป้อน หากไม่ป้อนข้อมูล ช่องผลลัพธ์ ถอดรหัส URL ก็จะว่าง ข้อมูลเข้าที่ยาวมากยังคงใช้กฎการถอดรหัสเดียวกัน แต่เบราว์เซอร์ เซิร์ฟเวอร์ และระบบปลายทางอาจกำหนดขีดจำกัดความยาวของคำขอหรือ URL ไว้เอง
อักขระที่มีเครื่องหมายกำกับเสียงและอักขระที่ไม่ใช่อักษรละตินมักเข้ารหัสเป็นลำดับไบต์ UTF-8 โดยเขียนแต่ละไบต์แยกกัน หากระบบต้นทางใช้การเข้ารหัสอักขระแบบอื่น ไบต์ที่ถอดรหัสแล้วอาจแสดงเป็นสัญลักษณ์ทดแทนหรือข้อความที่ดูไม่มีความหมาย
ทำไมถอดรหัส URL แล้วไม่สำเร็จหรือได้ข้อความอ่านไม่รู้เรื่อง?
การถอดรหัส URL อาจให้ผลลัพธ์ที่ไม่เปลี่ยนแปลงหรือไม่ตรงตามคาด หากข้อมูลเข้ามีลำดับเปอร์เซ็นต์ที่ไม่สมบูรณ์ ถูกเข้ารหัสมากกว่าหนึ่งครั้ง ถูกตีความด้วยชุดอักขระที่ไม่ถูกต้อง หรือไม่ใช่ข้อมูลที่เข้ารหัสแบบ URL เลย ฟังก์ชัน urldecode ของ PHP จะปล่อยลำดับเปอร์เซ็นต์ที่ผิดรูปไว้ตามเดิม ส่วนข้อมูลที่เข้ารหัสซ้ำจะให้เพียงผลลัพธ์ขั้นกลางหลังถอดรหัสหนึ่งรอบ ควรตรวจสอบต้นทางก่อนถอดรหัสซ้ำหลายครั้ง
- ข้อมูลเข้าที่ถูกเข้ารหัสซ้ำ: %2520 เมื่อถอดรหัสหนึ่งครั้งจะได้ %20 และจะกลายเป็นช่องว่างหลังถอดรหัสรอบที่สองเท่านั้น ถอดรหัสซ้ำเฉพาะเมื่อคุณทราบว่ามีการเข้ารหัสอีกชั้นหนึ่ง
- ลำดับเปอร์เซ็นต์ไม่สมบูรณ์: ไบต์ที่เข้ารหัสแต่ละไบต์ต้องมีเลขฐานสิบหกสองหลัก เครื่องหมาย % ที่อยู่ท้ายสุดหรือค่าอย่าง %2 ถือว่าผิดรูปและไม่สามารถแทนไบต์ที่เข้ารหัสอย่างสมบูรณ์ได้ ฟังก์ชัน urldecode ของ PHP จึงปล่อยค่าไว้ตามเดิม
- การเข้ารหัสอักขระไม่ถูกต้อง: การถอดรหัสแบบเปอร์เซ็นต์จะกู้คืนไบต์ ตัวอย่างเช่น หากตีความไบต์ ISO-8859-1 เป็น UTF-8 อาจได้ข้อความที่อ่านไม่รู้เรื่อง แม้ว่าลำดับเปอร์เซ็นต์จะถูกต้องก็ตาม
- เป็นข้อมูลไบนารี ไม่ใช่ข้อความ: ไบต์ที่ถอดรหัสแล้วอาจเป็นรูปภาพ ไฟล์บีบอัด หรือเนื้อหาไบนารีชนิดอื่น ผลลัพธ์ประเภทนี้ไม่ได้มีไว้ให้แสดงเป็นข้อความที่อ่านได้
- ใช้ตระกูลการเข้ารหัสผิด: หากนำผลลัพธ์ที่ถอดรหัส URL แล้วไปใส่ในตัวถอดรหัส Base64 ต่อ เครื่องมือนั้นอาจทำงานไม่สำเร็จเพราะใช้อักษรมาตรฐานกับแบบ URL-safe ต่างกัน ไม่มีส่วนเติม = หรือข้อมูลเสียหาย การเข้ารหัส URL แบบเปอร์เซ็นต์ไม่มีส่วนเติมและไม่ได้ใช้ชุดอักขระของ Base64 อีกทั้งการถอดรหัส URL จะไม่ตรวจสอบหรือแก้ไขปัญหา Base64 เหล่านี้
ระวังเครื่องหมายบวกที่เป็นอักขระจริง ในการเข้ารหัส URL แบบฟอร์ม + หมายถึงช่องว่าง โดยทั่วไป เครื่องหมายบวกจริงควรเข้ารหัสเป็น %2B ก่อนถอดรหัส
คำถามที่พบบ่อย
ควรถอดรหัสทั้ง URL หรือเฉพาะบางส่วน?
หากทำได้ ให้ถอดรหัสเฉพาะเซกเมนต์ของพาธหรือค่าพารามิเตอร์คำค้นหา การถอดรหัสทั้ง URL อาจเปลี่ยนอักขระสงวนที่เข้ารหัสไว้ เช่น %26, %3F หรือ %2F ให้เป็นตัวแบ่ง และทำให้ระบบแยกโครงสร้าง URL ต่างไปจากเดิม
ถ้ารหัสเลขฐานสิบหกใช้ตัวพิมพ์เล็ก ยังถอดรหัสได้ไหม?
ได้ ตัวเลขฐานสิบหกในลำดับเปอร์เซ็นต์ไม่แยกตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ดังนั้น %2f และ %2F จึงแทนไบต์เดียวกัน ลำดับที่ใช้ตัวพิมพ์เล็กและใหญ่ปนกันก็ใช้ได้เช่นกัน
เครื่องมือจะถอดรหัสค่าเดิมซ้ำหลายรอบไหม?
ไม่ การเรียกใช้ urldecode หนึ่งครั้งจะถอดรหัสเพียงหนึ่งรอบ หาก %252F กลายเป็น %2F ต้องถอดรหัสอีกรอบจึงจะได้เครื่องหมายทับ แต่การถอดรหัสซ้ำอาจเปลี่ยนข้อมูลที่ตั้งใจให้มีลำดับเปอร์เซ็นต์อยู่จริง
การถอดรหัส URL กู้ข้อความที่เสียหายได้ไหม?
ไม่ได้ การถอดรหัสสามารถย้อนการเข้ารหัสแบบเปอร์เซ็นต์ที่ถูกต้อง แต่ไม่สามารถสร้างเลขฐานสิบหกที่หายไปใหม่ หรือระบุชุดอักขระต้นฉบับได้อย่างแน่นอน หากไบต์ที่ถอดรหัสแล้วแสดงผลไม่ถูกต้อง ให้ตรวจสอบระบบต้นทาง ส่วนหัว HTTP หรือเอกสารประกอบ
ถ้าค่าขึ้นต้นด้วย xn-- ต้องทำอย่างไร?
ให้ถือว่าเป็นป้ายชื่อโดเมนแบบ Punycode ไม่ใช่ข้อความทั่วไปที่เข้ารหัสแบบเปอร์เซ็นต์ ใช้ตัวแปลง IDN Punycode แล้วตรวจสอบโดเมนที่ได้อย่างละเอียด เพราะอักขระ Unicode ที่ดูคล้ายกันอาจมาจากคนละระบบอักษร
เครื่องมือที่คล้ายกัน
เครื่องมือยอดนิยม
สร้างลายเซ็นแบบกำหนดเองของคุณได้อย่างง่ายดายและดาวน์โหลดได้อย่างสะดวก
ใช้เครื่องมือ ping ของเราเพื่อตรวจสอบสถานะและเวลาตอบสนองของเว็บไซต์ เซิร์ฟเวอร์ หรือพอร์ตใด ๆ ได้อย่างรวดเร็วและมีประสิทธิภาพ
เครื่องมือค้นหา IP ของ Digily Link ให้ข้อมูลโดยละเอียดเกี่ยวกับที่อยู่ IP ใด ๆ ใช้บริการออนไลน์ฟรีนี้เพื่อดูข้อมูล IP อย่างครบถ้วน
สร้างลิงก์ WhatsApp ฟรีได้ทันทีด้วยเครื่องมือสร้างลิงก์ WhatsApp ของเรา เพิ่มข้อความที่กำหนดเองและเริ่มแชทได้ในคลิกเดียว โดยไม่ต้องเข้าสู่ระบบหรือเขียนโค้ด