2010-06-14 39 views
0

我已經寫在C#中的下一個代碼編譯....它使用UTF8創建一個TEX文件.....問題是,似乎是不是真正有效的utf-8文件,因爲當我使用pdflatex時,它無法識別帶有重音符號的字符。有人知道寫一個真正的UTF-8文件的方法嗎?當我使用TexmakerX創建UTF8文件具有相同的乳膠代碼或pdflatex不投訴,所以這個問題必須在產生。UTF8編纂問題C#,寫一個TEX文件,並與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(); 

回答

3

這可能是缺少Unicode字節順序標記(BOM)的問題。您可以使用自定義UTF8Encoding

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

} 
+0

謝謝,作品完美無缺。 – mjsr 2010-06-14 23:38:58