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

问题:在C / C ++中,是否有接受Unicode的系统函数? 请参阅以下原因:

#include  #include  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; } 

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

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

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

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

使用_wsystem

_wsystem是系统的宽字符版本; _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

标准C和C ++根本没有明确地理解Unicode:没有一个标准API被定义为接受或返回Unicode字符串。 与Java不同。 宽字符串或多字节字符串实际上是Unicode编码字符串是依赖于系统的。 所以简单的答案是否定的