Проблема кодификации utf8 в C#, написание текстового файла и компиляция с помощью pdflatex
У меня есть следующий код, написанный на C#.... он создает текстовый файл, используя utf-8..... проблема в том, что кажется, что это не настоящий действительный файл 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 ответ
Решение
Это может быть проблема с отсутствующей меткой порядка байтов Unicode (BOM). Вы можете проверить это с помощью пользовательского UTF8Encoding
:
using (StreamWriter writer =
new StreamWriter("hello.tex", false, new UTF8Encoding(true, true)))
{
}