我的.NET实用程序AjGenesis是一个代码生成工具。编译后的二进制文件在Ubuntu 10.x和Mono下运行没有毛刺。但我有一个问题:生成一个java文本文件(我工具的普通文本文件),它会在每个文件的开头生成字节顺序标记。我正在使用System.Text.Encoding.Default:在Windows中,一切正常,在Ubuntu中,字节顺序标记是三个字节,表示UTF8,我猜。
这种差异是个问题,当我想使用ant或javac编译生成.java文件时,BOM会产生错误。然后:
TIA
答案 0 :(得分:1)
请勿使用Encoding.Default
。为什么要使您的输出平台具体?使用UTF-8 - 如果您必须使用没有BOM的UTF-8,您可以使用:
Encoding utf8 = new UTF8Encoding(false);
说实话,我很惊讶javac失败了。你说你已经尝试过“没有成功” - 结果是什么?
答案 1 :(得分:1)
尝试实例化System.Text.UTF8Encoding并提供不包含BOM的参数值。你可以在这里阅读: http://msdn.microsoft.com/en-us/library/s064f8w2.aspx