Widziałem wiele systemów POSIX API, na przykład Linux & Mac i Android, które akceptują const char*
jako argument dla ścieżki pliku.
Jednym z przykładów jest dlopen, jak pokazuje dokument, pierwszym argumentem jest const char*
, więc czy obsługuje ścieżkę pliku w Unicode, na przykład ścieżkę z chińskim?
Odpowiedzi:
2 dla odpowiedzi № 1Zakłada się, że we współczesnych systemach Linux / Unix nazwy plików w Unicode są wyrażone w ustawieniach bajtowych w utf-8 (chociaż niektóre z bazowych plików przechowują wewnętrznie nazwy plików w UTF-16).
3 dla odpowiedzi № 2
POSIX nie jest wymagany do obsługi nazw plików w Unicode. (Widzieć: https://stackoverflow.com/a/2306003/481267) Jednak pod warunkiem, że są zakodowane w utf-8, nie ma technicznych przeszkód do obsługi Unicode. Wiele nowoczesnych systemów plików zezwala na użycie dowolnego znaku w nazwie pliku