Asset filename unicode normalisation? We have a site deployed in Norway, and people have uploaded PDF-assets with Norwegian non-ascii characters in the filenames. 

Normally this works fine, the URLs are encoded like this and it works: 

http://[oursite].no/assets/files/downloads/%C3%85rsberetning-2014_kladd.pdf

("Årsberetning" - annual report)

But one file didn't want to download, it only gave me 404. However, checking on the server the file was there, and the filename appeared correct. Also, re-scanning asset folders didn't remove it. 

BUT - I was not able to rename the file from within craft, nor download it. 

After much hair-pulling I established that the file on disk had the Å encoded as '\x41\xcc\x8a' whereas craft looked for a "pre-composed" Å ('\xc3\x85'). 

NOW the question - where did this break? :) 

Does Craft unicode-normalise filenames? 
Does MySQL normalise the unicode it stores? 

The file has moved around various developer machines and staging servers before making it into production, it could be some other part of the tool-chain that broke it.
This has now been solved by the addition of the convertFilenamesToAscii config setting introduced in Craft 2.4.

If you are working on a multilingual site, you might also find the limitAutoSlugsToAscii config setting useful.