Новая файловая система apple разрешает называть файлы только по-английски

      Комментарии к записи Новая файловая система apple разрешает называть файлы только по-английски отключены

Неприятность имен в APFS

Файловая совокупность APFS, представленная компанией Apple в марте 2017 г., не дает пользователю возможность именовать файлы на каком-либо языке, не считая британского. Имя файла либо папки лучше составлять лишь из знаков кодировки ASCII, в другом случае с этим объектом появятся неприятности. Дело в том, что APFS не поддерживает нормализацию знаков универсальной совокупности кодирования Unicode.

От этого страдают прежде всего письменные знаки разных языков, каковые отличаются от букв британского алфавита.

APFS была создана компанией с нуля и ориентирована прежде всего на работу с флэш-накопителями и более идеальное шифрование данных. На данный момент APFS трудится на всех устройствах, где установлена версия iOS 10.3 либо выше. Так, указанная неприятность отмечается лишь на iPhone и iPad, на которых у пользователя нет прямого доступа к файлам.

Но, потому, что до конца 2017 г. APFSбудет развернута и в macOS, исследователи уже на данный момент имеют возможность зафиксировать проблему имен файлов и для этого случая.

Нормализация Unicode

В совокупность кодирования Unicode включены алфавиты фактически всех языков мира, имеющих письменность, и цифры, математические символы и т. д. За каждым таким знаком закреплен неповторимый код, что делает его частью неспециализированной совокупности. Кое-какие знаки обозначаются сходу несколькими кодовыми комбинациями. К примеру, буква «?» возможно представлена в кодировке UTF-8 как два шестнадцатеричных байта c3 a9, быть может смотреться как три шестнадцатеричных байта 65 cc 81.

Однако, визуально это одинаковая буква, и компьютер обязан прочитывать ее единообразно, для чего и требуется нормализация.

В стандарте Unicode предусмотрено четыре совокупности нормализации. Прошлая файловая совокупность Apple, которая именуется HFS+, применяет форму нормализации D. Другими словами, две различные «?» машинально приводятся к одному виду и предстают в виде трех байтов 65 cc 81. В HFS+ это делается на уровне файловой совокупности. Так, все, что выполняется на Mac, будь то приложения, команды либо сама macOS, трудится с нормализованными именами папок и файлов.

HFS+ не разрешает создавать какие-либо «ненормальные» имена.

Как трудится APFS

В APFS нормализация знаков не выполняется на уровне файловой совокупности. APFS не меняет поступившие к ней кодовые комбинации Unicode независимо от того, были они нормализованы либо нет. Нормализация встроена в системные команды более большого уровня, каковые трудятся с папками и файлами.

Новая файловая система apple разрешает называть файлы только по-английски

Файлы, поименованные знаками неанглийских алфавитов, APFS вычисляет безлюдными

Дабы избежать неприятностей, Apple рекомендует разработчикам применять для работы с файловой совокупностью высокоуровневые Foundation API, такие как NSFileManager либо NSURL. Либо же прибегать к функции fileSystemRepresentation объектов NSURL при открытии и создании файлов посредством API более низкого уровня, таких как POSIX, и при сохранении файлов APFS за ее пределами.

ее последствия и Проблема

В ответ разработчики поясняют, что не всякое ПО может трудиться по таковой схеме, и что кое-какие высокоуровневые API еще не поддерживают запросы, нужные для исполнения данной процедуры. Обстановка помогает происхождению в APFS неточностей, и данный риск возрастает, в то время, когда для именования файлов употребляется любой язык не считая английского, потому, что британский алфавит наименее испытывает недостаток в нормализации Unicode. Переход с одной файловой совокупности на другую влечет за собой смешанную нормализацию.

Потому, что в HFS+ знаки нормализуются на уровне файловой совокупности, командные оболочки этим не занимаются. К примеру, инструмент Terminal сам по себе прописывает в заглавии файла caf?.txt двухбитный, ненормализованный «?». А инструмент Finder, как и обещает Apple, приводит букву к трехбитному виду.

Кое-какие оболочки смогут получить доступ лишь к папкам и файлам с нормализованными именами, другими словами они не видят ненормализованный caf?.txt, как, к примеру, Icon view. Terminal видит, но испытывает неприятности при исполнении операций с этим файлом. Apfelstrudel уверен в том, что два файла caf?.txt с нормализованным и ненормализованным «?» названы одинаково, а Finder – что по-различному.

Неприятность может привести к сбою в работе многих инструментов, пишет ресурс The Eclectic Light Company, тем более, что ввод команд напрямую либо через оболочки довольно часто употребляется в macOS. Сейчас пользователь не может быть на 100% уверен, какой знак он на данный момент ввел. Дабы исправить обстановку, нужно будет внедрять механизм нормализации в сами инструменты, но это будет непросто.

Интересные записи:

APFS — новая файловая система от Apple


Еще немного статей: