代码之家  ›  专栏  ›  技术社区  ›  mjsr

utf8编码问题C#,编写tex文件,用pdflatex编译

  •  0
  • mjsr  · 技术社区  · 15 年前

    我的下一个代码是用C#编写的,它使用utf-8创建了一个tex文件,问题是它似乎不是一个真正有效的utf-8文件,因为当我使用pdflatex时,它无法识别带有重音的字符。有人知道怎么写一个真正的UTF-8文件吗?当我使用TexmakerX创建具有相同乳胶代码的utf8文件时,pdflatex不会抱怨,所以问题一定出在生成中。

                        StreamWriter writer = new StreamWriter("hello.tex", false, Encoding.UTF8);
    
            writer.Write(@"\documentclass{article}" + "\n" +
                         @"\usepackage[utf8]{inputenc}" + "\n" +
                        @"\usepackage[spanish]{babel}" + "\n" +
                            @"\usepackage{listings}" + "\n" +
                            @"\usepackage{fancyvrb}" + "\n" +
                            @"\begin{document}" + "\n" +
                            @"\title{asd}" + "\n" +
                            @"\maketitle" + "\n" +
                            @"\section{canción}" + "\n" +
    
                            @"canción" + "\n" +
    
                            @"\end{document}");
            writer.Close();
    
    1 回复  |  直到 15 年前
        1
  •  3
  •   Dirk Vollmar    15 年前

    这可能是缺少Unicode字节顺序标记(BOM)的问题。您可以使用自定义 UTF8Encoding :

    using (StreamWriter writer = 
        new StreamWriter("hello.tex", false, new UTF8Encoding(true, true)))
    {
    
    }