มารู้จัก HTML URL Encoding

HTML URL Encoding

เชื่อว่าหลายๆคนคงอาจจะเจอหรือประสบปัญหาต่อไปนี้ นั้นก็คือเวลาที่เราคัดลอก URL Link หรือที่อยู่ของเว็บในช่อง Address bar ที่มีภาษาไทยผสมอยู่ เมื่อนำไปวางในที่ของข้อความที่ต้องการแสดงผล ข้อความที่ปรากฏจะกลายเป็นคำที่ประกอบด้วยตัวอักษรภาอังกฤษ ตัวเลข สัญลักษณ์ หรือที่เรามักเรียกกันว่าภาษาต่างดาวนั่นเอง ดังนี้ “97%E0%B8%A2” ซึ่งจริง ๆแล้วมันก็คือสิ่งที่เราเรียกว่า เอนโค้ดดิ้ง (encoding) และ ดีโค้ดดิ้ง (decoding)  ดังนั้นเรามาดูกันว่า ทั้งสองคำนี้มีการทำงานอย่างไร และมีวิธีการแก้ปัญหานี้มาฝากให้อ่านกันด้วย

  สมมติว่าลองเข้าเว็บไซต์วิกิพีเดีย ในช่องค้นหาให้ค้นหาคำว่า “เกม” ซึ่งจะปรากฏชื่อที่อยู่ของเว็บไซต์ในช่อง Address bar ดังรูป

 ให้ลองคัดลอกลิงค์ไปวางที่อื่นที่ไหนก็ได้ ก็จะปรากฏข้อความความที่อยู่ลิงค์ดังกล่าวถูกแปลงไปเป็นข้อความแบบนี้   https://th.wikipedia.org/wiki/%E0%B9%80%E0%B8%81%E0%B8%A1  

  จะเห็นได้ว่าคำที่เป็นภาษาไทย คำว่า “เกม” จะถูกแปลงไป นั่นก็เพราะ URL ถูกแปลงให้อยู่ในรูปของ URL encoding เอาไว้นั่นเอง  ดังนั้นเวลาที่เราจะนำที่อยู่ลิงค์ดังกล่าวไปใช้งาน เราต้องทำการแปลงกลับข้อมูลนั้นก่อน ซึ่งเราเรียกว่า decode  มีขั้นตอนที่ง่ายๆนั้นก็คือ ใช้เครื่องมือออนไลน์เข้ามาช่วย ยกตัวอย่างเช่น เว็บไซต์ https://meyerweb.com/eric/tools/dencoder/ ที่ให้บริการแปลงข้อมูลดังกล่าวผ่านทางเว็บไซต์ โดยเมื่อเรานำที่อยู่ของเว็บไซต์ที่ผ่านการ decode เอาไว้ แล้วคลิกปุ่ม Decode ระบบก็จะแปลงกลับไปเป็น URL Link หรือที่อยู่ของเว็บไซต์ที่มีภาษาไทยนั่นเอง

   แล้ว encoding (เอนโค้ดดิ้ง) และ decoding (ดีโค้ดดิ้ง) มันคืออะไรล่ะ?

Encoding คือ การวางลำดับของตัวอักษร ตัวอักษร ตัวเลข เครื่องหมาย และสัญลักษณ์ เข้าสู่ฟอร์แมตพิเศษสำหรับการส่งผ่านที่มีประสิทธิภาพหรือจัดเก็บ

Decoding คือ เป็นกระบวนการตรงข้าม การแปลงของรูปแบบ encode กลับไปยังลำดับดั้งเดิมของตัวอักษร