I'm trying to debug a function which decodes URL strings. For example the string file:///C:/some%20filename would get changed to file:///C:/some filename

As expected, the function has replaced "%20" with a space character. For reasons I don't understand though, the function also removes '+' characters from the URL - so file:///C:/some+filename also gets changed to file:///C:/some filename (with the '+' character getting replaced by a space). Would this be normal behaviour for a URL decoder? I didn't think that '+' was special or illegal in any way.