Используйте "\n"
, чтобы добавить дополнительную строку в дополнение к уже добавленной строке.
Прямое преобразование из ANSI в ASCII не всегда возможно, поскольку ANSI является надмножеством ASCII.
Вы можете попробовать конвертировать в UTF-8, используя Encoding
, хотя:
Encoding ANSI = Encoding.GetEncoding(1252);
byte[] ansiBytes = ANSI.GetBytes(str);
byte[] utf8Bytes = Encoding.Convert(ANSI, Encoding.UTF8, ansiBytes);
String utf8String = Encoding.UTF8.GetString(utf8Bytes);
Конечно, вы можете заменить UTF8 на ASCII, но это не имеет смысла, поскольку:
ОБНОВЛЕНИЕ:
В ответ на обновленный вопрос вы можете используйте BinaryReader
следующим образом:
BinaryReader reader = new BinaryReader(File.Open("foo.txt", FileMode.Open),
Encoding.GetEncoding(1252));
Обычно при чтении / записи файла необходимо указать кодировку
. Например:
// read with the **local** system default ANSI page
string text = File.ReadAllText(path, Encoding.Default);
// ** I'm not sure you need to do this next bit - it sounds like
// you just want to read it? **
// write as ASCII (if you want to do this)
File.WriteAllText(path2, text, Encoding.ASCII);
Обратите внимание, что после прочтения текста текст
фактически является юникодом в памяти.
Вы можете выбрать разные кодовые страницы, используя Encoding.GetEncoding
.