Файл, созданный с помощью File.CreateText (), отсутствует в UTF-8 - PullRequest
0 голосов
/ 21 декабря 2018

Документация для File.CreateText () гласит: «Создает или открывает файл для записи текста в кодировке UTF-8».

Однако созданные файлы закодированы на западноевропейском языке.

String template = File.ReadAllText(Settings.Default.template, Encoding.UTF8);
template = template.Replace("{{content}}", "éèê");
using (StreamWriter sw = File.CreateText(item_path))
{
   sw.Write(template);
}

Я использую этот код для генерации HTML-страниц с <meta charset="UTF-8">, но буквы с акцентом не отображаются должным образом, если я вручную не изменю настройки кодировки браузера на «Западноевропейский».

Есть идеи, почему файлы не в формате UTF-8?

1 Ответ

0 голосов
/ 21 декабря 2018

Я не смог воспроизвести вашу проблему, вот код, который я использовал для генерации набора нижестоящих символов utf8 и записи их в файл:

        StringBuilder sb = new StringBuilder();
        for (int i = 1; i < 1025; i++)
        {
            sb.Append((char)i);
        }

        string fn = Path.GetTempFileName();
        using (var sw = File.CreateText(fn))
        {
            sw.Write(sb.ToString());
            sw.Flush();
            sw.Close();
        }
        Process.Start(Path.GetDirectoryName(fn));

Вот что я вижу при открытии в блокноте ++:

enter image description here

Что вы получаете, когда делаете то же самое?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...