test_ls.py: test script producing invalid filenames and then trying to display them into stdout.
Output with UTF-8 locale, UTF-8 terminal and Python 3.3 (or unpatched 3.4, it's the same):
ascii.txt
<UnicodeError 'invalid_utf8:\udcff.txt'>
<UnicodeError 'latin1:\udce9.txt'>
utf8:é€.txt
Output with C locale (ASCII), UTF-8 terminal and Python 3.3:
ascii.txt
<UnicodeError 'invalid_utf8:\udcff.txt'>
<UnicodeError 'latin1:\udce9.txt'>
<UnicodeError 'utf8:\udcc3\udca9\udce2\udc82\udcac.txt'>
Output with C locale (ASCII), UTF-8 terminal and patched Python 3.4:
ascii.txt
invalid_utf8:�.txt
latin1:�.txt
utf8:é€.txt
You get no Unicode error with LANG=C, but you get mojibake instead. |