C# 启动批处理文件和编码
我在处理.NET中的bat/批处理文件时遇到了一些问题。 我会C# 启动批处理文件和编码,c#,.net,batch-file,encoding,C#,.net,Batch File,Encoding,我在处理.NET中的bat/批处理文件时遇到了一些问题。 我会处理.Start并且我可以启动实际的文件,但是,如果bat文件是用UTF8编码的,它会被错误地解码,因为DOS使用其他编码 我可以用不同的编码开始这个过程吗?这会影响实际bat文件的编码吗 bat文件包含在项目中作为“始终复制”资源,我不太习惯使用DOS编码保存它,并将其检查到TFS中,然后将其分发给所有团队成员,非常确定这最终会爆炸。UTF应该是完全正常的,我认为问题在于BOM(字节顺序标记)在文件的开头。要摆脱它: 选择另存为并扩
处理.Start
并且我可以启动实际的文件,但是,如果bat文件是用UTF8编码的,它会被错误地解码,因为DOS使用其他编码
我可以用不同的编码开始这个过程吗?这会影响实际bat文件的编码吗
bat文件包含在项目中作为“始终复制”资源,我不太习惯使用DOS编码保存它,并将其检查到TFS中,然后将其分发给所有团队成员,非常确定这最终会爆炸。UTF应该是完全正常的,我认为问题在于BOM(字节顺序标记)在文件的开头。要摆脱它:
选择另存为并扩展文件对话框中的保存按钮,然后选择“使用编码保存”。或者,如果您想永久取消此设置,只需打开“文件”菜单并选择“高级保存选项”,然后在那里选择“无签名UTF-8”(这也回答了您的最后一个问题:)。是“无签名UTF-8”与无BOM相同。()如果先使用chcp切换到unicode,会发生什么情况?例如:应该注意的是,UTF8中的BOM通常不受Unicode规范本身的影响,这正是因为它破坏了原本良好的ASCII兼容性。因此,对于所有尚未启用的UTF8处理器,禁用BOM通常是标准做法。