QUICK ANSWER
ช่องว่างใน URL encoding ต่างจากเครื่องหมาย + อย่างไร?
ทูลนี้ใช้ encodeURIComponent และ decodeURIComponent ช่องว่างจึงเป็น %20 และเครื่องหมาย + เป็น %2B เมื่อถอดรหัส + จะยังเป็น + ไม่ใช่ช่องว่าง จึงเหมาะกับค่าของส่วนประกอบ URL ไม่ใช่การถอด form-urlencoded ทั้งชุด