Czy możliwe jest wykorzystanie pełnego zakresu (powiedzmy) języka chińskiego w nazwach plików aktywów (obrazów) w systemie iOS? Jeśli nie, jakie części dużych języków są obsługiwane w nazwach plików, wyszukiwaniach ciągów i innych czynnościach związanych z obsługą plików?Nazwy plików w Unicode w iOS
Odpowiedz
System plików iOS wykorzystuje wielkość liter HFSX, która jest odmianą HFS Plus i używa tych samych reguł dla nazw plików i kodowań znaków.
Zasady te są określone w kilku sekcjach Apple Technote 1150.
Istotne rozważania są:
- Możesz użyć do 255 16-bitowych znaków Unicode na nazwę pliku lub folderu, jak to opisano w sekcji HFS Plus Names z techniczną firmy 1150.
- System plików na swoim poziomie podstawowym używa Unicode v2.0 (jest to poprawione) i ciągi muszą być przechowywane w całkowicie rozłożonej kolejności kanonicznej. Wyklucza to użycie niektórych "form równoważnych" - to znaczy, że muszą zostać przekształcone do postaci rozłożonej. Zostało to szczegółowo opisane w sekcji Technote 1150. W tej sekcji opisano inne problemy i należy je uważnie przeczytać.
- Lista niedozwolonych znaków znajduje się w tym Decomposition Table.
- Znak dwukropka "
:
" jest używany jako separator katalogu i jest niepoprawny w nazwach plików i folderów.
Systemy iOS i Mac OS korzystają obecnie z HFS+ filesystem, który obsługuje pełny kod Unicode w nazwach plików. Oznacza to zasadniczo dowolną postać, w tym język chiński i inne języki ludzkie. System plików pozwala na maksymalnie 255 znaków, co dla większości języków wynosi około 255 punktów kodowych. (Widzę notatkę, że długość jest oparta na znakach zakodowanych w UTF16. Istnieją znaki, które wymagają więcej niż 16 bitów do kodowania, takie jak emoji, z których możesz również korzystać, ale będziesz mieć mniej dozwolonych znaków.)
Interfejsy API plików w systemie iOS (NSFileManager itp.) Powinny uwzględniać ciągi znaków Unicode bez żadnych dodatkowych czynności. Zauważ, że sekwencje Unicode są kanonizowane w określony sposób: np. znak é
może być reprezentowany na wiele różnych sposobów w Unicode, ale zostanie rozłożony w znormalizowany sposób jako nazwa pliku.
Najważniejsze jest to, że możesz używać ciągów Unicode jako nazw plików, o ile mają one rozsądną długość. Ponieważ superlongowe nazwy Unicode zaczną borykać się z problemami związanymi z długością w nieco nieprzewidywalny sposób (naprawdę tylko skomplikowane i niepotrzebne do obliczenia), prawdopodobnie powinieneś ustawić pewne rozsądne nałożone limity długości.
APFS to system plików następnej generacji opracowany przez firmę Apple, który wkrótce pojawi się w systemie iOS. Nie mogę znaleźć informacji na temat kodowania nazw plików, ale jest to uczciwe założenie, że będzie obsługiwać wszystko, co obsługuje HFS +, jeśli nie więcej.
Czy próbowałeś? Zadziałało? – rmaddy
Teoretycznie, cały chiński "alfabet" powinien zadziałać ... ale jest to gigantyczne zadanie sprawdzenia, jako osoba nie mówiąca/pisząca/czytająca, osoba nie chińska. A potem są problemy z innymi językami ... których też nie znam. Więc nie, nie próbowałem tego. I nie jestem w stanie przeprowadzić wyczerpującego (lub dokładnego) testu. Mam nadzieję na autorytatywne odniesienie lub odpowiedź od kogoś, kto by wiedział. – Confused
Zakładam, być może niesłusznie, że ciągła rozmowa Apple o wspieraniu unicode i lokalizacji, którą ich system plików jest w pełni zdolny, oznacza, że obsługuje wszystkie języki i wszystkie zestawy znaków.Ale nie chcę polegać na tym założeniu bez jakiejś pewności ze źródła, które jest o wiele bardziej kompetentne w tych sprawach. Który jest prawie kimś innym niż ja. – Confused