# URL Encode และ Decode

> URL Encode Decode ออนไลน์ทันทีขณะพิมพ์ เลือก %20 หรือ + แทนช่องว่าง แยก URL เป็นพารามิเตอร์ query ที่แก้ไขได้ และลบแท็ก UTM ในคลิกเดียว

URL: https://acrafto.com/th/url-encode-decode-online/  
Updated: 2026-10-03

Tools are interactive browser apps; there is no public API, no endpoints to call and no server-side processing. To use a tool, open its HTML page in a browser.

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](https://url.spec.whatwg.org/#application/x-www-form-urlencoded) (ภาษาอังกฤษ) ที่ฟอร์ม HTML และ `URLSearchParams` สร้างขึ้น ช่องว่างกลายเป็น `+` และมีเพียงตัวอักษร ตัวเลข และ `* - . _` ที่ไม่ถูกเข้ารหัส ดังนั้น `! ' ( ) ~` จึงถูกเข้ารหัสด้วย
- **RFC 3986 แบบเข้มงวด** ปล่อยไว้โดยไม่เข้ารหัสเฉพาะอักขระ unreserved ของ [RFC 3986](https://www.rfc-editor.org/rfc/rfc3986) (ภาษาอังกฤษ) คือตัวอักษร ตัวเลข และ `- . _ ~` 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](https://acrafto.com/th/json-formatter-validator/) แล้วเข้ารหัสเป็น **ค่าพารามิเตอร์** เช่น `{"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 สำหรับ[ชื่อโดเมนระดับสากล](https://en.wikipedia.org/wiki/Internationalized_domain_name) (ภาษาอังกฤษ) เครื่องมือแสดงรูป Punycode ที่ DNS และเบราว์เซอร์ใช้ ดังนั้น `münchen.de` จึงกลายเป็น `xn--mnchen-3ya.de` และโดเมนที่ขึ้นต้นด้วย `xn--` จะแสดงรูปที่อ่านได้

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

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

ลิงก์จากจดหมายข่าว โฆษณา และโซเชียลมีเดียมีพารามิเตอร์ที่บอกเว็บไซต์เพียงว่าผู้เข้าชมมาจากไหน [พารามิเตอร์ UTM](https://en.wikipedia.org/wiki/UTM_parameters) (ภาษาอังกฤษ) ได้แก่ `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` ไว้

ลิงก์ที่จะนำไปทำ[คิวอาร์โค้ด](https://acrafto.com/th/sang-qr-khot-frie/)ควรล้างที่นี่ก่อน เมื่อไม่มีพารามิเตอร์ติดตามลิงก์จะสั้นลง และลิงก์ที่สั้นกว่าให้โค้ดที่หนาแน่นน้อยกว่าและสแกนง่ายกว่า

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

[Percent-encoding](https://en.wikipedia.org/wiki/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`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/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](https://acrafto.com/th/base64-encoder-decoder/) สร้างให้ได้

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

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

เครื่องมือสำหรับนักเขียนโปรแกรมเพิ่มเติมอยู่ในหมวด[นักพัฒนา](https://acrafto.com/th/developers/) และเครื่องมือที่แปลงรูปแบบหนึ่งเป็นอีกรูปแบบหนึ่งรวมอยู่ใน[เครื่องมือแปลง](https://acrafto.com/th/converters/) หากต้องการหาความแตกต่างระหว่าง URL ยาวสองเส้น เช่น การเรียก API ที่ใช้ได้กับที่ล้มเหลว ให้วางทั้งสองลงใน[เครื่องมือเปรียบเทียบข้อความ](https://acrafto.com/th/priap-thiap-khokhwam/)แล้วเปรียบเทียบตามอักขระ

## Other languages

- Čeština (cs): [URL encode a decode](https://acrafto.com/cs/url-encode-decode/) ([Markdown](https://acrafto.com/cs/url-encode-decode/index.md))
- Slovenčina (sk): [URL encoder a decoder](https://acrafto.com/sk/url-encode-decode-online/) ([Markdown](https://acrafto.com/sk/url-encode-decode-online/index.md))
- English (en): [URL Encoder and Decoder](https://acrafto.com/en/url-encoder-decoder/) ([Markdown](https://acrafto.com/en/url-encoder-decoder/index.md))
- Deutsch (de): [URL Encoder und Decoder](https://acrafto.com/de/url-encoder-decoder-online/) ([Markdown](https://acrafto.com/de/url-encoder-decoder-online/index.md))
- Français (fr): [Encodeur et décodeur d'URL](https://acrafto.com/fr/encodeur-decodeur-url/) ([Markdown](https://acrafto.com/fr/encodeur-decodeur-url/index.md))
- Español (es): [Codificador y decodificador de URL](https://acrafto.com/es/codificar-decodificar-url-online/) ([Markdown](https://acrafto.com/es/codificar-decodificar-url-online/index.md))
- Italiano (it): [URL encoder e decoder](https://acrafto.com/it/url-encode-decode-online/) ([Markdown](https://acrafto.com/it/url-encode-decode-online/index.md))
- Português (pt): [Codificador e decodificador de URL](https://acrafto.com/pt/codificar-decodificar-url-online/) ([Markdown](https://acrafto.com/pt/codificar-decodificar-url-online/index.md))
- Nederlands (nl): [URL encoder en decoder](https://acrafto.com/nl/url-encoder-decoder/) ([Markdown](https://acrafto.com/nl/url-encoder-decoder/index.md))
- Polski (pl): [Kodowanie i dekodowanie URL](https://acrafto.com/pl/url-encode-decode-online/) ([Markdown](https://acrafto.com/pl/url-encode-decode-online/index.md))
- Română (ro): [URL encoder și decoder](https://acrafto.com/ro/url-encode-decode-online/) ([Markdown](https://acrafto.com/ro/url-encode-decode-online/index.md))
- Magyar (hu): [URL kódoló és dekódoló](https://acrafto.com/hu/url-kodolas-dekodolas/) ([Markdown](https://acrafto.com/hu/url-kodolas-dekodolas/index.md))
- Ελληνικά (el): [Κωδικοποίηση και αποκωδικοποίηση URL](https://acrafto.com/el/url-encode-decode-online/) ([Markdown](https://acrafto.com/el/url-encode-decode-online/index.md))
- Български (bg): [URL encode и decode](https://acrafto.com/bg/url-encode-decode-onlain/) ([Markdown](https://acrafto.com/bg/url-encode-decode-onlain/index.md))
- Hrvatski (hr): [URL koder i dekoder](https://acrafto.com/hr/url-encode-decode-online/) ([Markdown](https://acrafto.com/hr/url-encode-decode-online/index.md))
- Slovenščina (sl): [URL kodirnik in dekodirnik](https://acrafto.com/sl/url-kodirnik-dekodirnik/) ([Markdown](https://acrafto.com/sl/url-kodirnik-dekodirnik/index.md))
- Eesti (et): [URL kodeerija ja dekodeerija](https://acrafto.com/et/url-kodeerija-dekodeerija/) ([Markdown](https://acrafto.com/et/url-kodeerija-dekodeerija/index.md))
- Latviešu (lv): [URL kodētājs un dekodētājs](https://acrafto.com/lv/url-kodetajs-dekodetajs/) ([Markdown](https://acrafto.com/lv/url-kodetajs-dekodetajs/index.md))
- Lietuvių (lt): [URL koduotuvas ir dekoduotuvas](https://acrafto.com/lt/url-koduotuvas-dekoduotuvas/) ([Markdown](https://acrafto.com/lt/url-koduotuvas-dekoduotuvas/index.md))
- Svenska (sv): [URL-kodare och avkodare](https://acrafto.com/sv/url-kodare-avkodare/) ([Markdown](https://acrafto.com/sv/url-kodare-avkodare/index.md))
- Dansk (da): [URL encoder og dekoder](https://acrafto.com/da/url-encoder-dekoder-online/) ([Markdown](https://acrafto.com/da/url-encoder-dekoder-online/index.md))
- Suomi (fi): [URL-kooderi ja -dekooderi](https://acrafto.com/fi/url-encode-decode-kooderi/) ([Markdown](https://acrafto.com/fi/url-encode-decode-kooderi/index.md))
- Norsk (no): [URL-enkoder og -dekoder](https://acrafto.com/no/url-enkoder-dekoder/) ([Markdown](https://acrafto.com/no/url-enkoder-dekoder/index.md))
- Українська (uk): [Кодування й декодування URL](https://acrafto.com/uk/url-encode-decode-onlain/) ([Markdown](https://acrafto.com/uk/url-encode-decode-onlain/index.md))
- Русский (ru): [URL кодировщик и декодировщик](https://acrafto.com/ru/url-koder-dekoder/) ([Markdown](https://acrafto.com/ru/url-koder-dekoder/index.md))
- Српски (sr): [URL enkoder i dekoder](https://acrafto.com/sr/url-enkoder-dekoder/) ([Markdown](https://acrafto.com/sr/url-enkoder-dekoder/index.md))
- Македонски (mk): [URL енкодер и декодер](https://acrafto.com/mk/url-encode-decode-onlajn/) ([Markdown](https://acrafto.com/mk/url-encode-decode-onlajn/index.md))
- Bosanski (bs): [URL koder i dekoder](https://acrafto.com/bs/url-encode-decode/) ([Markdown](https://acrafto.com/bs/url-encode-decode/index.md))
- Shqip (sq): [URL Encoder dhe Decoder](https://acrafto.com/sq/url-encode-decode-online/) ([Markdown](https://acrafto.com/sq/url-encode-decode-online/index.md))
- Türkçe (tr): [URL kodlayıcı ve çözücü](https://acrafto.com/tr/url-encode-decode/) ([Markdown](https://acrafto.com/tr/url-encode-decode/index.md))
- 日本語 (ja): [URLエンコード・デコード](https://acrafto.com/ja/url-encode-decode/) ([Markdown](https://acrafto.com/ja/url-encode-decode/index.md))
- 한국어 (ko): [URL 인코딩 디코딩](https://acrafto.com/ko/url-inkoding-dikoding/) ([Markdown](https://acrafto.com/ko/url-inkoding-dikoding/index.md))
- العربية (ar): [ترميز وفك ترميز URL](https://acrafto.com/ar/url-encoder-decoder/) ([Markdown](https://acrafto.com/ar/url-encoder-decoder/index.md))
- हिन्दी (hi): [URL एन्कोडर और डिकोडर](https://acrafto.com/hi/url-encoder-decoder-online/) ([Markdown](https://acrafto.com/hi/url-encoder-decoder-online/index.md))
- Bahasa Indonesia (id): [URL encoder dan decoder](https://acrafto.com/id/url-encode-decode-online/) ([Markdown](https://acrafto.com/id/url-encode-decode-online/index.md))
- Tiếng Việt (vi): [Mã hóa và giải mã URL](https://acrafto.com/vi/url-encode-decode-truc-tuyen/) ([Markdown](https://acrafto.com/vi/url-encode-decode-truc-tuyen/index.md))
- עברית (he): [מקודד ומפענח URL](https://acrafto.com/he/url-encoder-decoder/) ([Markdown](https://acrafto.com/he/url-encoder-decoder/index.md))
