是否有任何C/C++ system()函数接受unicode?

Ste*_*ger 3 c c++

问:在C/C++中,是否有接受Unicode的系统函数?见下面的原因:

#include <stdio.h>
#include <stdlib.h>


int main(int argc, char* argv[])
{
    // http://stackoverflow.com/questions/3313332/bringing-another-apps-window-to-front-on-mac-in-c
    system("osascript -e \"tell application \\\"Address Book\\\" to activate\"");
    return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)

Hav*_*c P 8

据我所知,system()并不关心编码,它应该只是通过它.

也许你的问题是"如何在C中键入UTF-8字符串文字"或"osascript期望的编码"?

在C中执行UTF-8的可移植方式是使用\ x转义序列,但如果您愿意依赖C99或特定编译器,则通常可以直接键入UTF-8.

我猜想osascript期待UTF-8虽然我没有真正的想法.


Ami*_*yan 7

使用_wsystem.

_wsystem是一个广泛的版本system; 命令参数to _wsystem是一个宽字符串.否则这些函数的行为相同.

http://msdn.microsoft.com/en-us/library/277bwbdz.aspx

名为的特殊函数main是所有C和C++程序的执行起点.如果您正在编写符合Unicode编程模型的代码,则可以使用wmain,这是main的宽字符版本.

http://msdn.microsoft.com/en-us/library/vstudio/6wd819wh.aspx