URL Encode และ Decode
ใช้กับค่า query หนึ่งค่าหรือหนึ่งส่วนของพาธ เข้ารหัสทุกอย่างยกเว้นตัวอักษร ตัวเลข และ - _ . ! ~ * ' ( ) เหมือนกับ encodeURIComponent
วาง URL ด้านบน ส่วนประกอบและพารามิเตอร์จะแสดงที่นี่พร้อมให้แก้ไข
พารามิเตอร์ query
URL นี้ไม่มีพารามิเตอร์ query
พารามิเตอร์ Fragment
ทุกอย่างทำงานในเบราว์เซอร์ของคุณ และไม่มีสิ่งที่วางถูกอัปโหลด ซึ่งสำคัญ เพราะ URL มักมีโทเค็นและ session ID
URL Encode และ Decode ข้อความออนไลน์ได้ทันทีขณะพิมพ์ เครื่องมือนี้แปลงช่องว่าง ตัวอักษรที่ไม่ใช่ ASCII และสัญลักษณ์อย่าง & หรือ ? ให้เป็นรหัส percent-encoding เช่น %20 และแปลงกลับเป็นข้อความที่อ่านได้ แท็บที่สองคือตัวแยก URL ซึ่งแยกที่อยู่ใดๆ ออกเป็นโปรโตคอล โฮสต์ พาธ และพารามิเตอร์ query ที่แก้ไข ปิดใช้งาน หรือลบตัวติดตามออกได้ แล้วเขียน URL ที่เข้ารหัสถูกต้องกลับให้ ทุกอย่างทำงานในเบราว์เซอร์ของคุณ
วิธี URL Encode และ Decode ข้อความ
- พิมพ์หรือวางข้อความในช่องบนแท็บ เข้ารหัส / ถอดรหัส ส่วน ผลลัพธ์ จะอัปเดตทุกครั้งที่พิมพ์
- เลือก ทิศทาง โดย เข้ารหัส ทำให้ข้อความปลอดภัยสำหรับ URL ส่วน ถอดรหัส แปลง
caf%C3%A9%20au%20laitกลับเป็นcafé au laitถ้าวางข้อความที่มีรหัสอย่าง%20ลงในช่องว่าง เครื่องมือจะสลับไปที่ ถอดรหัส เอง (กด เข้ารหัสแทน เพื่อสลับกลับ) และถ้าวางข้อความธรรมดาที่ต้องเข้ารหัสในโหมด ถอดรหัส ก็จะสลับไปที่ เข้ารหัส ในแบบเดียวกัน พร้อมปุ่ม ถอดรหัสแทน - เมื่อเข้ารหัส ให้เลือกใต้ เข้ารหัสแบบ ว่าข้อความนั้นเป็นอะไร (ดูหัวข้อถัดไป) ค่าเริ่มต้นคือ ค่าพารามิเตอร์ ซึ่งเหมาะกับค่า query หนึ่งค่า
- คัดลอก ส่งผลลัพธ์ไปยังคลิปบอร์ด ส่วน สลับ ย้ายผลลัพธ์ไปเป็นข้อมูลป้อนเข้าและสลับทิศทาง ใช้ตรวจสอบไปกลับได้เร็ว คือการถอดรหัสสิ่งที่เพิ่งเข้ารหัสต้องได้ข้อความเดิมกลับมา
อักขระทุกตัวที่เครื่องมือเปลี่ยนจะถูกไฮไลต์ในผลลัพธ์ วางเมาส์เหนือตัวอักษรเพื่อดูอักขระ รหัส 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 ที่บางเว็บไซต์เข้ารหัส
éเป็นไบต์เดียว%E9caf%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 ที่ใช้ได้กับที่ล้มเหลว ให้วางทั้งสองลงในเครื่องมือเปรียบเทียบข้อความแล้วเปรียบเทียบตามอักขระ