Я использую функцию UNIX symlink()
, чтобы связать путь, содержащий символы Unicode. Однако когда я читаю ссылку, она возвращает ?
вместо символов Юникода.
Вот как выглядит мой метод:
if (symlink("symlink.jpg", "/real/path/光芒.jpg") != 0)
warn("symlink() error\n");
else //symlink creation successful
На этом этапе символическая ссылка успешно создана, однако ссылка выглядит примерно так:
symlink.jpg -> /real/path/??.jpg
Я ожидал, что ссылка будет выглядеть так:
symlink.jpg -> /real/path/光芒.jpg
Может кто-нибудь сказать мне, почему это происходит?
Любое исправление или альтернативная рекомендация библиотеки / функции будет принята.
Дополнительная информация:
- Я подозреваю, что библиотека
unistd.h
или fcntl.h
может не поддерживать Unicode. Потому что когда я использую creat()
или open()
для создания нового файла с именем 光芒.jpg
, он фактически создает файл с именем ??.jpg
.
- Моя среда разработки и компилятор поддерживают юникод. Например,
fprint()
может использовать символы Юникода.