I am working on a system that uses UTF-8 characters in folder names for URLs. There was no problem navigating to these URLs, and everything worked as expected - except when you send a redirect to another page on the site; after which the browser seems to encode extended characters.
To give an example, I'm trying to redirect to the following relative URL:
/geschäft/käfer/
If I find this URL directly in the address bar, there is no problem. However, if I change the location header to redirect the browser to this URL, it ends with:
/gesch%E4ft/k%E4fer/
If I look in the response headers to the original page (this is a 301 redirect to the translated content), I can see this entry:
Location:/geschäft/käfer/
It seems that the correct details end in the header, but the encoded value with % E4 , described in detail above, is displayed in the address bar of the browser. I tried to use different ways to enter the URL into the location header, but they all have the same result.
I observe this behavior on Chrome 37.0.2062.120 m and on Firefox 32.0.2.
This works on dev, Windows 7 Home with IIS7.5
EDIT: Looks like this problem could be directly related to ColdFusion. If I use Javascript to redirect to the url, this works ... with the caveat that the file must be saved using the specification. If I use cflocation , or if I use pagecontext to insert the header manually, the problem persists whether the specification is present or not.
I also noticed a similar problem with using cfinclude in that these extended characters are not displayed correctly if the calling pattern is not saved using the spec.