URL Encode และ Decode

Acrafto Team นักพัฒนา
อัปเดต
เข้ารหัสแบบ

ใช้กับค่า query หนึ่งค่าหรือหนึ่งส่วนของพาธ เข้ารหัสทุกอย่างยกเว้นตัวอักษร ตัวเลข และ - _ . ! ~ * ' ( ) เหมือนกับ encodeURIComponent

ผลลัพธ์

ทุกอย่างทำงานในเบราว์เซอร์ของคุณ และไม่มีสิ่งที่วางถูกอัปโหลด ซึ่งสำคัญ เพราะ URL มักมีโทเค็นและ session ID

URL Encode และ Decode ข้อความออนไลน์ได้ทันทีขณะพิมพ์ เครื่องมือนี้แปลงช่องว่าง ตัวอักษรที่ไม่ใช่ ASCII และสัญลักษณ์อย่าง & หรือ ? ให้เป็นรหัส percent-encoding เช่น %20 และแปลงกลับเป็นข้อความที่อ่านได้ แท็บที่สองคือตัวแยก URL ซึ่งแยกที่อยู่ใดๆ ออกเป็นโปรโตคอล โฮสต์ พาธ และพารามิเตอร์ query ที่แก้ไข ปิดใช้งาน หรือลบตัวติดตามออกได้ แล้วเขียน URL ที่เข้ารหัสถูกต้องกลับให้ ทุกอย่างทำงานในเบราว์เซอร์ของคุณ

วิธี URL Encode และ Decode ข้อความ

  1. พิมพ์หรือวางข้อความในช่องบนแท็บ เข้ารหัส / ถอดรหัส ส่วน ผลลัพธ์ จะอัปเดตทุกครั้งที่พิมพ์
  2. เลือก ทิศทาง โดย เข้ารหัส ทำให้ข้อความปลอดภัยสำหรับ URL ส่วน ถอดรหัส แปลง caf%C3%A9%20au%20lait กลับเป็น café au lait ถ้าวางข้อความที่มีรหัสอย่าง %20 ลงในช่องว่าง เครื่องมือจะสลับไปที่ ถอดรหัส เอง (กด เข้ารหัสแทน เพื่อสลับกลับ) และถ้าวางข้อความธรรมดาที่ต้องเข้ารหัสในโหมด ถอดรหัส ก็จะสลับไปที่ เข้ารหัส ในแบบเดียวกัน พร้อมปุ่ม ถอดรหัสแทน
  3. เมื่อเข้ารหัส ให้เลือกใต้ เข้ารหัสแบบ ว่าข้อความนั้นเป็นอะไร (ดูหัวข้อถัดไป) ค่าเริ่มต้นคือ ค่าพารามิเตอร์ ซึ่งเหมาะกับค่า query หนึ่งค่า
  4. คัดลอก ส่งผลลัพธ์ไปยังคลิปบอร์ด ส่วน สลับ ย้ายผลลัพธ์ไปเป็นข้อมูลป้อนเข้าและสลับทิศทาง ใช้ตรวจสอบไปกลับได้เร็ว คือการถอดรหัสสิ่งที่เพิ่งเข้ารหัสต้องได้ข้อความเดิมกลับมา

อักขระทุกตัวที่เครื่องมือเปลี่ยนจะถูกไฮไลต์ในผลลัพธ์ วางเมาส์เหนือตัวอักษรเพื่อดูอักขระ รหัส Unicode และไบต์ของมัน เช่น é U+00E9 %C3%A9 ใต้ช่องจะแสดงจำนวน อักขระ ไบต์ UTF-8 และ อักขระที่เข้ารหัส (หรือ อักขระที่ถอดรหัส) ปุ่ม ลองดูตัวอย่าง โหลดประโยค ลดราคา 50 % กาแฟ & ชาเขียว ลองไหม? ซึ่งมี 33 อักขระแต่ 80 ไบต์ UTF-8 เพราะอักขระภาษาไทยแต่ละตัว รวมถึงสระและวรรณยุกต์ ใช้ 3 ไบต์

เมื่อเข้ารหัส ตัวเลือก แยกทีละบรรทัด จะเข้ารหัสแต่ละบรรทัดแยกกันและคงการขึ้นบรรทัดใหม่ไว้ เหมาะกับรายการค่าหรือลิงก์ ถ้าไม่เลือก การขึ้นบรรทัดใหม่จะถูกเข้ารหัสด้วยและกลายเป็น %0A เมื่อข้อความเป็น URL ที่มีพารามิเตอร์ เครื่องมือจะแสดงปุ่ม แยกเป็นส่วนๆ ซึ่งเปิดที่อยู่นั้นในแท็บตัวแยก URL

URL Encode พารามิเตอร์ URL ทั้งเส้น หรือข้อมูลฟอร์ม

อักขระไม่ได้ต้องเข้ารหัสในทุกที่ เครื่องหมายสแลชแบ่งโฟลเดอร์ในพาธ แต่เป็นข้อมูลธรรมดาในค่าพารามิเตอร์ ผลลัพธ์ที่ถูกต้องจึงขึ้นกับสิ่งที่เข้ารหัส เข้ารหัสแบบ มีสี่โหมด

  • ค่าพารามิเตอร์ ทำงานเหมือน encodeURIComponent ของ JavaScript เหมาะกับค่า query หนึ่งค่าหรือหนึ่งส่วนของพาธ เข้ารหัสทุกอย่างยกเว้นตัวอักษร ตัวเลข และ - _ . ! ~ * ' ( ) ดังนั้น & = / หรือ ? ในค่าจึงไม่ทำให้ URL เสีย การเข้ารหัส café & crème ได้ caf%C3%A9%20%26%20cr%C3%A8me พร้อมใช้หลัง q=
  • URL ทั้งเส้น ใช้กับที่อยู่ที่สมบูรณ์ซึ่งแค่ต้องจัดให้เรียบร้อย โหมดนี้เข้ารหัสช่องว่าง อักขระที่ไม่ใช่ ASCII อักขระควบคุม เครื่องหมายแบ็กทิก และ " < > \ ^ { | } แต่คงทุกอย่างที่ทำให้ URL มีโครงสร้างไว้ คือ : / ? # [ ] @ ! $ & ' ( ) * + , ; = ดังนั้น https://example.com/search?q=café au lait&lang=fr จะกลายเป็น https://example.com/search?q=caf%C3%A9%20au%20lait&lang=fr รหัสที่เข้ารหัสไว้แล้วจะคงเดิม และ % ที่อยู่ลำพังกลายเป็น %25 จุดนี้ต่างจาก encodeURI ของ JavaScript ซึ่งเปลี่ยน %20 ที่มีอยู่เป็น %2520 และเข้ารหัสวงเล็บเหลี่ยมของที่อยู่ IPv6 เช่น http://[2001:db8::1]:8080/
  • ข้อมูลฟอร์ม ใช้รูปแบบ application/x-www-form-urlencoded (ภาษาอังกฤษ) ที่ฟอร์ม HTML และ URLSearchParams สร้างขึ้น ช่องว่างกลายเป็น + และมีเพียงตัวอักษร ตัวเลข และ * - . _ ที่ไม่ถูกเข้ารหัส ดังนั้น ! ' ( ) ~ จึงถูกเข้ารหัสด้วย
  • RFC 3986 แบบเข้มงวด ปล่อยไว้โดยไม่เข้ารหัสเฉพาะอักขระ unreserved ของ RFC 3986 (ภาษาอังกฤษ) คือตัวอักษร ตัวเลข และ - . _ ~ OAuth 1.0 (RFC 5849) และ AWS Signature Version 4 ต้องการรูปแบบนี้เท่านั้น เพราะลายเซ็นจะตรงกันก็ต่อเมื่อทั้งสองฝั่งเข้ารหัส ! หรือ * เหมือนกัน

อักขระเดียวกันในแต่ละโหมด

อักขระค่าพารามิเตอร์URL ทั้งเส้นข้อมูลฟอร์มRFC 3986 แบบเข้มงวด
ช่องว่าง%20%20+%20
&%26&%26%26
/%2F/%2F%2F
+%2B+%2B%2B
~~~%7E~
!!!%21%21
****%2A
é%C3%A9%C3%A9%C3%A9%C3%A9

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

ถ้าต้องส่ง JSON ในพารามิเตอร์ query ให้ย่อ JSON ในตัวจัดรูปแบบ JSON แล้วเข้ารหัสเป็น ค่าพารามิเตอร์ เช่น {"id":7,"tags":["a","b"]} จะกลายเป็น %7B%22id%22%3A7%2C%22tags%22%3A%5B%22a%22%2C%22b%22%5D%7D และทำย้อนกลับได้เช่นกัน คือถอดรหัสพารามิเตอร์ที่นี่ แล้วไปจัดรูปแบบที่นั่น

ปัญหา URL Decode: เครื่องหมายบวก %2520 และรหัสที่เสีย

การถอดรหัสมักใช้งานได้ทันที แต่มีสี่สถานการณ์ที่ทำให้คนสะดุด เครื่องมือจัดการทุกกรณีแทนที่จะหยุดด้วยข้อผิดพลาด

  • เครื่องหมายบวกแทนช่องว่างในข้อมูลฟอร์มและ query string ส่วนใหญ่ ถอดรหัส + เป็นช่องว่าง เปิดไว้เป็นค่าเริ่มต้น ดังนั้น caf%C3%A9+au+lait จึงถอดเป็น café au lait ใน URL ทั้งเส้น จะนับเฉพาะเครื่องหมายบวกหลัง ? เป็นช่องว่าง เพราะในพาธ เครื่องหมายบวกเป็นอักขระธรรมดา ปิดตัวเลือกนี้เมื่อเครื่องหมายบวกหมายถึงบวกจริง ส่วนเครื่องหมายบวกที่เข้ารหัสเป็น %2B จะยังเป็นเครื่องหมายบวกเสมอ
  • การเข้ารหัสซ้อนสองชั้นเกิดเมื่อโค้ดสองชั้นเข้ารหัสค่าเดียวกันทั้งคู่ ซึ่ง RFC 3986 เตือนไว้ชัดเจน % ทุกตัวกลายเป็น %25 ช่องว่างจึงเปลี่ยนจาก %20 เป็น %2520 ถ้าผลลัพธ์ที่ถอดแล้วยังมีรหัสอย่าง %20 เครื่องมือจะแจ้งว่าข้อความน่าจะถูกเข้ารหัสสองครั้ง และมีปุ่ม ถอดรหัสอีกครั้ง
  • รหัสที่ไม่ถูกต้อง คือ % ที่ไม่ตามด้วยเลขฐานสิบหกสองหลัก เช่น 100% หรือ %G1 ทำให้ decodeURIComponent ของ JavaScript เกิด URIError ที่นี่รหัสแบบนั้นจะคงไว้ตามเดิม ทำเครื่องหมายสีแดงและนับให้ ส่วนที่เหลือของข้อความยังถอดรหัสต่อ
  • ลิงก์ Latin-1 รุ่นเก่ามาจากยุคก่อน UTF-8 ที่บางเว็บไซต์เข้ารหัส é เป็นไบต์เดียว %E9 caf%E9 ไม่ใช่ UTF-8 ที่ถูกต้อง decodeURIComponent จึงล้มเหลว และ unquote ของ Python คืนค่า caf ตามด้วยอักขระแทนที่ U+FFFD เครื่องมือนี้อ่านไบต์เหล่านั้นเป็น Windows-1252 ถอด caf%E9 เป็น café และเพิ่มหมายเหตุบอกไว้

อักขระควบคุมในข้อความที่ถอดรหัส เช่น แท็บหรือ null byte จะแสดงเป็นสัญลักษณ์ที่มองเห็นได้ เช่น ␉ และ ␀ แต่ คัดลอก จะคัดลอกข้อความจริง

ตัวแยก URL: แยก URL และแก้ไขพารามิเตอร์ query

วางที่อยู่ในช่อง URL บนแท็บ แยกและแก้ไข URL แล้วระบบจะแยกเป็น โปรโตคอล โฮสต์ พอร์ต พาธ และ Fragment รวมถึง ชื่อผู้ใช้ และ รหัสผ่าน เมื่อ URL มีค่าเหล่านี้ ค่าที่แสดงถูกถอดรหัสแล้ว แท็บนี้จึงเป็นวิธีที่เร็วที่สุดในการถอดรหัสพารามิเตอร์ URL ด้วย คือคุณอ่านเห็น รองเท้าวิ่ง ผู้ชาย แทนที่จะเป็น %E0%B8%A3%E0%B8%AD%E0%B8%87%E0%B9%80%E0%B8%97%E0%B9%89%E0%B8%B2%E0%B8%A7%E0%B8%B4%E0%B9%88%E0%B8%87+%E0%B8%9C%E0%B8%B9%E0%B9%89%E0%B8%8A%E0%B8%B2%E0%B8%A2 การแก้ไขทำได้สองทาง เหมือนแถบที่อยู่และตารางพารามิเตอร์ใน Postman แก้ช่องใดช่องหนึ่งแล้ว URL จะถูกเขียนใหม่ทันทีพร้อมเข้ารหัสถูกต้อง แก้ URL แล้วทุกส่วนจะถูกอ่านใหม่ ส่วนที่ไม่ได้แตะต้องจะคงเดิมทุกตัวอักษร

ตาราง พารามิเตอร์ query แสดงทุกพารามิเตอร์พร้อม ชื่อ และ ค่า ยกเลิกเครื่องหมายที่ รวมไว้ใน URL เพื่อตัดพารามิเตอร์ออกโดยไม่ต้องลบ ซึ่งช่วยเมื่อกำลังหาพารามิเตอร์ที่ทำให้คำขอเสีย เพิ่มพารามิเตอร์ ลบพารามิเตอร์ และ เรียง A ถึง Z ทำงานตามชื่อ ชื่อที่ซ้ำอย่าง tag=a&tag=b และชื่อที่ไม่มีค่าอย่าง ?debug จะคงไว้ ช่องว่างในพารามิเตอร์ กำหนดว่าจะเขียนช่องว่างเป็น %20 หรือ + โดยค่าเริ่มต้นจะตาม URL ที่วาง

ลิงก์เข้าสู่ระบบและลิงก์ชำระเงินมักมี URL ที่สองอยู่ในพารามิเตอร์ เข้ารหัสไว้เพื่อให้ ? และ & ของมันไม่ปนกับของ URL ชั้นนอก

https://auth.example.com/authorize?client_id=abc&redirect_uri=https%3A%2F%2Fapp.example.com%2Fcallback%3Ftab%3D2

ค่าที่เป็น URL เอง ซึ่งมักอยู่ใน redirect_uri return url หรือ next จะมีปุ่ม แก้ไข URL ที่ซ้อนอยู่ ที่อยู่ภายใน https://app.example.com/callback?tab=2 จะเปิดเป็นอีกระดับของตัวเองพร้อมส่วนประกอบและพารามิเตอร์ของมัน มีเส้นทางนำทาง (URL หลัก › redirect_uri) พากลับ และทุกการเปลี่ยนแปลงจะถูกเข้ารหัสกลับเข้าไปใน URL ชั้นนอก คัดลอก URL หลัก คัดลอกผลลัพธ์ ใช้ได้หลายระดับชั้น

เมื่อส่วนหลัง # มีลักษณะเป็นพารามิเตอร์ เช่น #access_token=...&state=... ใน OAuth implicit flow หรือ #/search?q=shoes ในเส้นทางของแอปหน้าเดียว ตารางที่สอง พารามิเตอร์ Fragment จะแสดงรายการเหล่านั้นด้วย

ตัวแยกยังชี้ปัญหาให้ด้วย เช่น URL ที่ไม่มีโปรโตคอล ซึ่งเบราว์เซอร์ถือเป็นลิงก์แบบสัมพัทธ์ พอร์ตที่อยู่นอกช่วง 0 ถึง 65535 และอักขระที่ต้องเข้ารหัส เช่น ช่องว่าง ตัวอักษรที่ไม่ใช่ ASCII " หรือ < ซึ่งปุ่ม เข้ารหัสให้ แก้ได้ในคลิกเดียว ข้อความที่ไม่มีที่อยู่ เช่น a=1&b=2 จะอ่านเป็น query string สำหรับชื่อโดเมนระดับสากล (ภาษาอังกฤษ) เครื่องมือแสดงรูป Punycode ที่ DNS และเบราว์เซอร์ใช้ ดังนั้น münchen.de จึงกลายเป็น xn--mnchen-3ya.de และโดเมนที่ขึ้นต้นด้วย xn-- จะแสดงรูปที่อ่านได้

คัดลอก URL คัดลอกที่อยู่ที่เสร็จแล้ว เปิด เปิดในแท็บใหม่ (เฉพาะลิงก์ http และ https) และ คัดลอกเป็น JSON ให้พารามิเตอร์ในรูปอ็อบเจกต์ JSON โดยชื่อที่ซ้ำจะรวมเป็นอาร์เรย์

ลบ UTM และพารามิเตอร์ติดตามอื่นๆ ออกจาก URL

ลิงก์จากจดหมายข่าว โฆษณา และโซเชียลมีเดียมีพารามิเตอร์ที่บอกเว็บไซต์เพียงว่าผู้เข้าชมมาจากไหน พารามิเตอร์ UTM (ภาษาอังกฤษ) ได้แก่ utm_source utm_medium utm_campaign utm_term และ utm_content มีที่มาจาก Urchin ซึ่งเป็นรุ่นก่อนของ Google Analytics ส่วน click ID อย่าง fbclid (Facebook) gclid (Google Ads) และ msclkid (Microsoft Advertising) แพลตฟอร์มเป็นผู้ต่อท้ายเอง

ตัวแยกจะติดแท็ก ติดตาม ให้พารามิเตอร์เหล่านี้ และ ลบตัวติดตาม (n) จะลบทั้งหมดในครั้งเดียว นอกจากพารามิเตอร์ utm_* ทุกตัวแล้ว ยังรู้จักอีกกว่า 20 ตัว เช่น ttclid (TikTok) mc_cid (Mailchimp) และ _hsenc (HubSpot) พารามิเตอร์ที่หน้าเว็บต้องใช้จะยังอยู่ครบ ในลิงก์ร้านค้าจาก ลองดูตัวอย่าง ปุ่ม ลบตัวติดตาม (4) จะลบ utm_source utm_medium utm_campaign และ fbclid และคง q size return และ fragment #reviews ไว้

ลิงก์ที่จะนำไปทำคิวอาร์โค้ดควรล้างที่นี่ก่อน เมื่อไม่มีพารามิเตอร์ติดตามลิงก์จะสั้นลง และลิงก์ที่สั้นกว่าให้โค้ดที่หนาแน่นน้อยกว่าและสแกนง่ายกว่า

Percent-encoding คืออะไร และอักขระกลายเป็น %XX ได้อย่างไร

Percent-encoding (ภาษาอังกฤษ) หรือที่เรียกว่า URL encoding คือการเขียนอักขระเป็น % ตามด้วยเลขฐานสิบหกสองหลัก URL มีอักขระ ASCII ได้เพียงชุดจำกัด และบางตัวมีหน้าที่เฉพาะ ? เริ่ม query & คั่นพารามิเตอร์ # เริ่ม fragment RFC 3986 เรียกอักขระเหล่านี้ว่า reserved (: / ? # [ ] @ และ ! $ & ' ( ) * + , ; =) ตัวอักษร ตัวเลข และ - . _ ~ เป็น unreserved ไม่ต้องเข้ารหัสเลย ส่วนอย่างอื่นทั้งหมด รวมถึงอักขระ reserved ที่ใช้เป็นข้อมูลธรรมดา ต้องเข้ารหัส

อักขระที่อยู่นอก ASCII จะถูกแปลงเป็นไบต์ UTF-8 ก่อน และแต่ละไบต์ได้ %XX ของตัวเอง

  • é คือ U+00E9 ซึ่ง UTF-8 เก็บเป็นสองไบต์ C3 A9 จึงกลายเป็น %C3%A9
  • € คือ U+20AC สามไบต์: %E2%82%AC
  • อีโมจิอย่าง U+1F600 (หน้ายิ้มแฉ่ง) ใช้สี่ไบต์: %F0%9F%98%80

%c3%a9 และ %C3%A9 มีความหมายเหมือนกัน แต่ RFC 3986 แนะนำตัวพิมพ์ใหญ่ ซึ่งเครื่องมือนี้เขียนให้ นี่คือตาราง percent encoding ของอักขระที่พบบ่อยที่สุด

อักขระเข้ารหัสแล้วอักขระเข้ารหัสแล้ว
ช่องว่าง%20+%2B
!%21,%2C
"%22/%2F
#%23:%3A
$%24;%3B
%%25=%3D
&%26?%3F
'%27@%40
(%28[%5B
)%29]%5D
*%2Aขึ้นบรรทัดใหม่%0A

URL Encode ใน JavaScript, Python และ PHP

ทุกภาษามีฟังก์ชันสำหรับงานนี้ และต่างกันหลักๆ ที่วิธีจัดการช่องว่าง สแลช และ ! ' ( ) * ~

JavaScript มี encodeURIComponent (ภาษาอังกฤษ) สำหรับค่า encodeURI สำหรับที่อยู่ทั้งเส้น และ URLSearchParams สำหรับการเข้ารหัสแบบฟอร์ม

encodeURIComponent("café & crème")                     // "caf%C3%A9%20%26%20cr%C3%A8me"
encodeURI("https://example.com/a b?q=café")            // "https://example.com/a%20b?q=caf%C3%A9"
new URLSearchParams({ q: "café & crème" }).toString()  // "q=caf%C3%A9+%26+cr%C3%A8me"
decodeURIComponent("caf%C3%A9")                        // "café"

decodeURIComponent ไม่แปลง + เป็นช่องว่าง และเกิด URIError เมื่อเจอรหัสที่ไม่ถูกต้อง เช่น 100%

ใน Python ฟังก์ชันอยู่ใน urllib.parse โดย quote คง / ไว้ตามค่าเริ่มต้น (safe='/') และเข้ารหัสทุกอย่างอื่นนอกจากอักขระ unreserved ของ RFC 3986 ส่วน quote_plus เขียนช่องว่างเป็น + และเข้ารหัส / ด้วย

from urllib.parse import quote, quote_plus, urlencode, unquote_plus

quote("café & crème/brûlée")       # 'caf%C3%A9%20%26%20cr%C3%A8me/br%C3%BBl%C3%A9e'
quote("a b/c", safe="")            # 'a%20b%2Fc'
quote_plus("café & crème/brûlée")  # 'caf%C3%A9+%26+cr%C3%A8me%2Fbr%C3%BBl%C3%A9e'
urlencode({"q": "café & crème", "page": 2})  # 'q=caf%C3%A9+%26+cr%C3%A8me&page=2'
unquote_plus("caf%C3%A9+au+lait")  # 'café au lait'

ใน PHP urlencode เข้ารหัสแบบฟอร์ม HTML และเขียนช่องว่างเป็น + ส่วน rawurlencode ตาม RFC 3986 และเขียนเป็น %20

urlencode("café & crème");     // "caf%C3%A9+%26+cr%C3%A8me"
rawurlencode("café & crème");  // "caf%C3%A9%20%26%20cr%C3%A8me"

rawurlencode ให้ผลเหมือน RFC 3986 แบบเข้มงวด ส่วน urlencode ตรงกับ ข้อมูลฟอร์ม ยกเว้น * ซึ่งมันเข้ารหัสเป็น %2A

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

ช่องว่างควรเข้ารหัสเป็น %20 หรือ + ?

%20 ใช้ได้ทุกที่ใน URL ส่วน + หมายถึงช่องว่างเฉพาะใน query string และข้อมูลฟอร์มที่ฟอร์ม HTML ส่งมา ในพาธ + เป็นเครื่องหมายบวกธรรมดา /a+b จึงยังเป็น /a+b เมื่อค่าใน query ต้องการเครื่องหมายบวกจริง ให้เขียนเป็น %2B ในเครื่องมือนี้ ข้อมูลฟอร์ม เขียนช่องว่างเป็น + และอีกสามโหมดเขียนเป็น %20

%20 %2F และ %3D ใน URL หมายถึงอะไร?

คืออักขระที่ถูกเข้ารหัส %20 คือช่องว่าง %2F คือสแลช และ %3D คือเครื่องหมายเท่ากับ รหัสอื่นที่พบบ่อยคือ %26 (&) %3F (?) %3A (:) %2C (จุลภาค) และ %27 (อะพอสทรอฟี) เลขสองหลักคือรหัสของอักขระเป็นเลขฐานสิบหก ตัวอักษรที่มีเครื่องหมายกำกับและอักขระที่ไม่ใช่ ASCII ใช้ตั้งแต่สองถึงสี่คู่ เช่น %C3%A9 สำหรับ é วางสตริงทั้งหมดลงในตัวถอดรหัสเพื่ออ่าน

encodeURI กับ encodeURIComponent ต่างกันอย่างไร?

encodeURI ออกแบบมาสำหรับที่อยู่ทั้งเส้น และปล่อยอักขระที่ให้โครงสร้าง เช่น : / ? # & = ไว้ ส่วน encodeURIComponent ออกแบบมาสำหรับหนึ่งส่วน คือค่าพารามิเตอร์หรือส่วนของพาธ และเข้ารหัสอักขระเหล่านั้นด้วย https://example.com/?a=1&b=2 จึงกลายเป็น https%3A%2F%2Fexample.com%2F%3Fa%3D1%26b%3D2 ในเครื่องมือนี้ ค่าพารามิเตอร์ ตรงกับ encodeURIComponent และ URL ทั้งเส้น คล้าย encodeURI แต่คงรหัสที่มีอยู่ เช่น %20 ไว้ แทนที่จะเปลี่ยนเป็น %2520

ลบพารามิเตอร์ UTM ออกจาก URL ได้อย่างไร?

วางลิงก์ในแท็บ แยกและแก้ไข URL แล้วกด ลบตัวติดตาม (n) ระบบจะลบแท็ก utm_* ทุกตัวและ click ID อย่าง fbclid และ gclid ในครั้งเดียว จากนั้นกด คัดลอก URL ถ้าต้องการลบเพียงบางตัว ให้ใช้ ลบพารามิเตอร์ ที่แถวที่ไม่ต้องการ

URL encoding เหมือนกับการเข้ารหัสลับหรือ Base64 ไหม?

ไม่เหมือน URL encoding ไม่ได้ซ่อนอะไรเลย ใครก็ถอด caf%C3%A9 กลับเป็น café ได้ จึงไม่ปกป้องรหัสผ่านหรือโทเค็น มันเพียงทำให้อักขระปลอดภัยสำหรับใช้ในที่อยู่ ส่วน Base64 เป็นการเข้ารหัสอีกแบบที่แปลงข้อมูลใดๆ รวมถึงไฟล์ไบนารี เป็นสตริงจากอักขระ 64 ตัว สตริง Base64 ใน URL ก็ยังต้องเข้ารหัส + / และ = เว้นแต่ใช้แบบ URL safe ซึ่งตัวเข้ารหัสและถอดรหัส Base64 สร้างให้ได้

URL ที่วางไว้ถูกอัปโหลดหรือเก็บไว้ไหม?

ไม่ การเข้ารหัส ถอดรหัส และแยก URL ทำงานในเบราว์เซอร์ของคุณ และไม่มีสิ่งที่วางถูกส่งไปยังเซิร์ฟเวอร์ ซึ่งสำคัญ เพราะ URL มักมี access token, session ID หรือรหัสรีเซ็ตรหัสผ่าน เบราว์เซอร์จำเฉพาะแท็บและตัวเลือกที่เลือก ไม่เคยจำข้อความ สิ่งเดียวที่โหลดที่อยู่นั้นคือ เปิด ซึ่งเปิดในแท็บใหม่เหมือนการคลิกลิงก์

เครื่องมือสำหรับนักเขียนโปรแกรมเพิ่มเติมอยู่ในหมวดนักพัฒนา และเครื่องมือที่แปลงรูปแบบหนึ่งเป็นอีกรูปแบบหนึ่งรวมอยู่ในเครื่องมือแปลง หากต้องการหาความแตกต่างระหว่าง URL ยาวสองเส้น เช่น การเรียก API ที่ใช้ได้กับที่ล้มเหลว ให้วางทั้งสองลงในเครื่องมือเปรียบเทียบข้อความแล้วเปรียบเทียบตามอักขระ

ฉันจะขอบคุณมากถ้าคุณสามารถแชร์หน้าเหล่านี้กับเพื่อน บุ๊กมาร์ก หรือลิงก์ไปยังหน้าเหล่านี้ ขอบคุณ! 🙏