It'd be helpful if you'd provide a couple of examples along the lines of the following (but using the functions in question):

```javascript
> "foo bar"
"foo bar"
> encodeURIComponent("foo bar")
"foo%20bar"
> decodeURIComponent(encodeURIComponent("foo bar"))
"foo bar"
```

I still don't understand why the operations don't cancel each other out. :)