2008-09-28 2 views
4

Есть версия exec[lv][pe]wchar_t (т.е. exec, который использует wchar_t как путь и wchar_t в качестве аргументов)? В Windows, я могу просто сделать CreateProcessW(process, cmdline), но в *nix, я застрял (т. Е. Чистый POSIX эквивалент). Я пытаюсь добавить поддержку UTF-16 моей программе (автозапуск).Wide Exec для C/C++

ответ

4

Нет. В UNIX принято использовать UTF-8 при взаимодействии с окружающей средой.

+0

Is exec [lv] [pe] * UTF-8-aware? – 2008-09-28 06:57:53

2

Существует проблема: файловая система UNIX/Linux кодирует-агностик. Все имена файлов - это просто «куча байтов»

Итак, если я создаю LANG = ja_JAP.EUC_JP, создайте файл с японским именем, тогда я сделаю LANG = ja_JP.UTF8, когда я посмотрю на имя моего файла будет выглядеть как мусор, и это будет недопустимая строка UTF-8.

Вы можете сказать: зачем это делать? Но представьте, что у вас есть система, используемая сотнями международных пользователей, каждая из которых использует файлы на русском/китайском/корейском/арабском языках, и вам нужно написать приложение для резервного копирования :-(

«Решение» - попросить всех установить локаль на что-то.UTF8, но это всего лишь соглашение, сама система ничего не навязывает.