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

    上一篇: 8 as file encoding and use ASCII instead

    下一篇: How to read this GHC Core "proof"?