管道重定向之重定向标准输入输出句柄
1.如果控制台应用程序数据流中包含中文,则要调用 _tsetlocale(LC_ALL, _T("chs")),否则数据流中的中文字符会被当成中止符而被截断,如printf("abc中文def"),只会输出"abc"
2.printf,cout,wcout中的换行符'\n',会被修改为回车加换行'\r\n'传递到管道中,如有语句printf("abc\r\n"),传递的真实数据流是"abc\r\r\n"
3.无论子进程编码方式是什么,传递到管道上的数据流都是多字节编码方式。因此,如果父进程是UNICODE编码,则要调用MultiByteToWideChar进行转码
本文探讨了在管道重定向中处理中文字符的方法,并强调了设置正确编码的重要性。此外,还介绍了不同换行符在Windows环境下的表现以及如何在Unicode环境中进行多字节到宽字符的转换。
275

被折叠的 条评论
为什么被折叠?



