(Это в основном украдено из моего предыдущего ответа ...)
Юникод позволяет отображать некоторые акцентированные символы несколькими различными способами: в виде «кодовой точки», представляющей акцентированный символ, или в виде последовательности кодовых точек, представляющих безударную версию символа, за которой следует акцент (ы). Например, «ä» может быть представлен либо предварительно составленным как U + 00E4 (UTF-8 0xc3a4, латинская строчная буква 1 с диарезом), либо разложенным как U + 0061 U + 0308 (UTF-8 0x61cc88, латинская строчная буква a +, сочетающим диарез ).
Файловая система OS X HFS + требует, чтобы все имена файлов были сохранены в представлении UTF-8 их полностью разложенной формы . В имени файла HFS + «ä» ДОЛЖЕН быть закодирован как 0x61cc88, а «ö» ДОЛЖЕН быть закодирован как 0x6fcc88.
Итак, здесь происходит то, что ваш сценарий оболочки содержит «Böhmáí» в предварительно составленном виде, поэтому он сохраняется таким образом в переменной a
и сохраняется таким образом в файле .text. Но когда вы создаете файл с таким именем (с touch
), файловая система преобразует его в разложенную форму для фактического имени файла. И когда вы ls
это, он показывает форму, которую имеет файловая система: декомпозированная форма.