8作为文件编码并使用ASCII代替
我目前正在研究一些嵌入由Visual Studio 2008生成的C#文件的LaTeX文档。我的问题是这些文件是使用BOM以UTF-8编码的。 这导致LaTeX产生类似于这篇文章中描述的输出的输出:
在Doxygen生成的胶乳来源中的字符无效?
我知道我可以使用Notepad ++之类的工具将文件转换为ASCII或其他没有BOM的格式。 但我的意图是:
或者导致LaTeX使用正确的输入编码(直到现在,我仍然无法使用包导入进行编码,例如:
usepackage {ucs}%unicode功能
usepackage [LATIN1] {inputenc}
或者使Visual Studio保存没有BOM或纯ASCII的文件
否则,我可能会编辑该文件(编译并将其保存在VC#中),并无意中再次引入BOM,这会破坏文档中的代码列表。
非常感谢,
Ovanes
我相信Visual Studio没有这个选项,因为.NET是从底层开始使用Unicode编写的。
但是,我不相信Visual Studio应该使用字节顺序标记。 你说Visual Studio正在“生成”这些文件,但是真正创建它们的过程是什么? 它是某种代码生成工具的结果吗? 如果是这样,那就是你应该关注的罪魁祸首和地点。
我检查了几个我的代码文件,并没有包含字节顺序标记。
编辑:更改Visual Studio项目模板
提问者在评论中说,这些文件是由内置的控制台应用程序项目模板生成的。 这些存储在您的硬盘上,如有必要可以修改。
您的安装路径可能会有所不同,但在我的系统中,我导航到此目录:
C: Program Files Microsoft Visual Studio 9.0 Common7 IDE ProjectTemplates CSharp Windows 1033
在这里我找到了ConsoleApplication.zip。 我将其复制到我的桌面(为了安全起见)并解压缩,并在其中找到4个文件 - .vstemplate文件以及由项目创建的3个文件:AssemblyInfo.cs,ConsoleApplication.csproj和Program.cs。
如果需要,可以编辑这些文件以删除字节顺序标记,将其压缩,然后替换源目录中的文件。
或者,为了更安全,您可以将模板名称更改为“控制台项目 - 无BOM”或类似的东西。 .vstemplate文件中有一个Name属性,它使用Package属性通过guid从某处调用信息。 您可以用指定名称的简单线替换此名称行。
<Name>Console Application - No BOM</Name>
然后重新解压缩文件,并将zip文件放在以下路径中:
(我的文档) Visual Studio 2008 Templates ProjectTemplates Visual C#
从这个模板创建的新项目不应该包含字节顺序标记,但请记住,微软显然希望那里的字节顺序标记,所以你的里程可能会有所不同。
项目模板(如Class)可以用相同的方式进行修改 - 它不应该花费太多的时间来查找默认和用户ItemTemplates目录。
我不确定我了解你的情况。 但是,如果您只是想在Visual Studio中将文件转换为ASCII文件,请选择“文件 - 另存为”并将编码切换为ASCII。
你有没有试过 usepackage [UTF8] {inputenc}
链接地址: http://www.djcxy.com/p/5701.html