2009/10/31 Steven Monai: >> That's the problem. The character in that file is *not* U+0323, but >> U+f020, a character in the Unicode private use range, which is used in >> Cygwin to map ASCII characters invalid in Windows filenames but valid >> in POSIX filenames. It's also used to map multibyte characters > 0x80 >> which are invalid in the current charset. > > Thanks for diagnosing my problem. My assumption that the char was U+0323 > was based on scrolling through the Windows Character Map app for > something that visually matched what I was seeing in the filename. Not > having any other way to quantify the char, I jumped to an incorrect > conclusion.
Any idea how that U+f020 character had got in there in the first place? >> You must not use characters >> in this range from U+f000 up to U+f0ff. There's no solution to this >> except for "don't use these characters in filenames if they are not >> explicitely written there by either Cygwin or Microsoft's SUA". Actually there is a possible solution: when translating a U+F0xx character, first check whether the xx byte really is illegal in the target charset. If it's not, it won't roundtrip correctly, so encode the U+F0xx as a ^X sequence instead. Doesn't seem worth the effort though. Andy -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple