Существует ли список символов, которые недопустимы в именах файлов и путях в OS X?
решение1
?
позволено.
Для HFS+ запрещены только 0x00
( NUL
) и .:
:
однако в программном обеспечении на основе POSIX он переключается на /
:
Спасибо Грэму Ли, который поправил меня!
решение2
Как сказал Дэниел Бек, NUL и ":" (он же "/" в контексте POSIX) запрещены; однако, все сложнее. Имена файлов HFS+ должны храниться в формате UTF-8, в полностью разложенном виде, с составными символами, хранящимися в каноническом порядке (см.тн1150). Поэтому ответ на ваш вопрос зависит от того, что вы подразумеваете под «характером»:
Если вас интересует последовательность байтов, из которых состоят имена файлов, то любая последовательность, которая не является допустимой кодировкой UTF-8 (или не разложена должным образом), запрещена.
Если вы имеете в виду кодовые точки Unicode, то это правило разложения по-прежнему запрещает любую точку, представляющую собой акцентированный символ (вместо этого она должна храниться как базовая буква + объединение акцентов) (см.tn1150таблица).
решение3
Согласно Википедии,http://en.wikipedia.org/wiki/HFS_PlusРазрешен любой символ юникода, включая NUL. Но многие приложения будут накладывать собственные ограничения, такие как '/' и т. д.
решение4
В MacOS, по крайней мере, смонтированные файловые системы HFS и exFAT, по-видимому, не поддерживают следующую последовательность символов UTF-16 0x61 ("a") 0x30a (звонок поверх -https://www.compart.com/en/unicode/U+030A), если посмотреть на последовательность байтов в имени файла после замены байтов на little endian, то она становится такой:
"61 00 0а 03"
Полагаю, проблема в том, что эта последовательность байтов переходит в 0xE5 ("å"), что, по-видимому, является каким-то общим символом пробела в MacOS.
Если диск не защищен от записи, такие файлыикаталоги мгновенно удаляются. Людям, работающим в правоохранительных органах Скандинавии, вероятно, стоит внимательно прочитать это, прежде чем отправлять файлы и документы между департаментами!
Когда началась эта проблема, неизвестно, но, вероятно, она существует с начала 70-х (вспомните VAX :-)
Эти файлы и имена каталогов проще всего создавать с помощью компьютеров Linux, FreeBSD или Windows. Просто откройте проводник и создайте документ или каталог, содержащий указанный выше символ. Затем подключите портативный диск к компьютеру MacOS и посмотрите, что произойдет.
Для вашего удобства я постарался вставить сюда испорченный символ и еще несколько примеров этих «умляутов», как их называют по-немецки:
å b̊ c̊