UTF8 filenames and shell utilities Try the next commands from the terminal:

touch á.txt
$ ls
á.txt

find .  -name á.txt -print


prints nothing.

My Terminal.app settings are utf8 - see here:



The question: How to achieve to work transprarently (Finder + command line) with UNICODE filenames?

I understand than behind the scene is the different unicode normalization, so:

$ echo á.txt | od -bc
0000000   303 241 056 164 170 164 012                                    
           á  **   .   t   x   t  \n 


and when

$touch á.txt
$ ls *.txt
á.txt

$ ls *.txt | od -bc
0000000   141 314 201 056 164 170 164 012                                
           a   ́     **   .   t   x   t  \n   


but WHAT IS THE SOLUTION?
As you mentioned, characters like á are stored or shown in decomposed form (LATIN SMALL LETTER A + COMBINING ACUTE ACCENT) even though most keyboard layouts insert characters in composed form (LATIN SMALL LETTER A WITH ACUTE).

The format is a variant of NFD where some ranges of characters are not decomposed. See Text Encodings in VFS:


  Important: The terms used in this Q&amp;A, precomposed and decomposed, roughly correspond to Unicode Normal Forms C and D, respectively. However, most volume formats do not follow the exact specification for these normal forms. For example, HFS Plus (Mac OS Extended) uses a variant of Normal Form D in which U+2000 through U+2FFF, U+F900 through U+FAFF, and U+2F800 through U+2FAFF are not decomposed (this avoids problems with round trip conversions from old Mac text encodings).


You can convert text to the decomposed format with iconv -t utf-8-mac:

$ touch á
$ ls | tr -d '\n' | xxd -p
61cc81
$ printf á | xxd -p
c3a1
$ find . -name á
$ find . -name $(iconv -f utf-8 -t utf-8-mac &lt;&lt;&lt; á)
./á