Я привожу пример двух разных поведений.
Когда я выполняю в терминале:
$cat -v /private/tmp/input.txt > /private/tmp/output.txt
У меня есть такой результат:
$file -I /private/tmp/output.txt
/private/tmp/output.txt: text/plain; charset=iso-8859-1
Результат iso-8859-1 отлично подходит для меня.
И когда я запускаю эту программу Swift:
func exec(_ path: String, _ args: String...) -> Int32 {
let task = Process()
task.launchPath = path
task.arguments = args
task.launch()
task.waitUntilExit()
return task.terminationStatus
}
exec("/bin/sh", "-c", "cat -v /tmp/input.txt > /tmp/output.txt")
У меня есть такой результат:
$file -I /private/tmp/output.txt
/private/tmp/output.txt: text/plain; charset=us-ascii
us-ascii здесь не то, что я хочу.
Я хотел бы, чтобы в моей программе был файл результатов iso-8849-1 (для моегопример конечно).Я нашел, как изменить результат в Терминале.Я получаю «us-ascii», если снял флажок «Задать переменные среды для локали при запуске» в настройках терминала.Поэтому я думаю, что моя программа не использует эти переменные.Я не прав?
Если нет, то я хотел бы знать следующее: как установить переменные среды пользователя в моей программе?
И я не хочу применять постоянную среду, но я бы хотел, чтобы команда 'cat' использовала окружение от пользователя, который запускает мою программу.