我举两个例子。
在终端中执行时:
$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”命令使用启动程序的用户的环境。