Как создать символическую ссылку на путь, содержащий символы Юникода? - PullRequest
0 голосов
/ 06 мая 2018

Я использую функцию 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

Может кто-нибудь сказать мне, почему это происходит? Любое исправление или альтернативная рекомендация библиотеки / функции будет принята.

Дополнительная информация:

  1. Я подозреваю, что библиотека unistd.h или fcntl.h может не поддерживать Unicode. Потому что когда я использую creat() или open() для создания нового файла с именем 光芒.jpg, он фактически создает файл с именем ??.jpg.
  2. Моя среда разработки и компилятор поддерживают юникод. Например, fprint() может использовать символы Юникода.
...