windows cmd管道即使用/ U开关也不是unicode
我有一个小的c#控制台程序,使用Console.WriteLine输出一些文本.然后我将此输出传递给文本文件,如:
c:myprogram> TextFile.txt的 但是,即使我使用/ u开关启动cmd,该文件也始终是ansi文本文件.
当我做的时候确实有所作为 c:echo“foo”>的text.txt text.txt是unicode(没有BOM) 我想知道为什么我的控制台程序的输出汇总到一个新文件同样不会创建一个unicode文件,我怎么能改变它? 我只使用Windows Power Shell(它生成一个具有正确BOM的unicode文件),但我仍然想知道如何使用cmd. 谢谢!
正如文档所述,/ U开关会影响内部命令是否生成Unicode输出.您的程序不是cmd.exe的内部命令之一,因此/ U选项不会影响它.
要创建Unicode文本文件,您需要确保您的程序生成Unicode文本. 但即使这样也可能还不够.我遇到了this blog from Junfeng Zhang,描述了如何在控制台程序中编写Unicode文本.它检查标准输出句柄的文件类型.对于字符文件(控制台或LPT端口),它调用WriteFileW.对于所有其他类型的句柄(包括磁盘文件和管道),它将输出字符串转换为控制台的当前代码页.不过,我担心我不知道这会如何转化为.Net术语. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Microsoft HTTPAPI / 2.0使用端口80 – 无法启动WAMP Apach
- 纯Win32 C中的自定义菜单边框(没有WTL,MFC等)
- windows-server-2003 – 使用Windows 2003 R2从命令行发送电
- windows-phone-8-emulator – Visual Studio 2015缺少模拟器
- NumPy for windows python 2.7
- 为什么ssh-host-config在Windows 8.1上的Cygwin中创建了两个
- window - 安装 tomcat
- windows-installer – 如何强制使用spcified语言安装MSI
- wpf – Windows系统托盘应用程序
- Notepad++ 安装NppFtp,方便在Windows上远程打开Linux上的文