use decodeURIComponent() instead of unescape() to decode parts

Had to change two test asserts for the suite to pass, don't know how you feel about that?