Я пишу программу, которая считывает весь текст в файле в строку, перебирает эту строку, просматривая символы, а затем добавляет символы обратно в другую строку с помощью Stringbuilder. Проблема, с которой я сталкиваюсь, заключается в том, что когда она записывается обратно, специальные символы, такие как “
и ”
, вместо этого выглядят как символы �
. Мне не нужно делать преобразование, я просто хочу, чтобы оно было записано так, как я его прочитал:
StringBuilder sb = new StringBuilder();
string text = File.ReadAllText(filePath);
for (int i = 0; i < text.Length; ++i) {
if (text[i] != '{') { // looking for opening curly brace
sb.Append(text[i]);
continue;
}
// Do stuff
}
File.WriteAllText(destinationFile, sb.ToString());
Пробовал использовать разные кодировки (UTF-8, UTF-16, ASCII), но потом получилось еще хуже; Я начал получать символы вопросительного знака и китайские иероглифы (да, это немного упрощенный подход, но я просто экспериментировал). Я прочитал эту статью: http://www.joelonsoftware.com/articles/Unicode.html ... но на самом деле это не объясняло, почему я видел то, что видел, если только в C# читатель не начинает обрезать биты, когда сталкивается с такими странными символами. Заранее благодарю за любую помощь!