Свойство CurrentEncoding
StreamReader.CurrentEncoding
отражает Encoding из конструктора
или UTF-8 по умолчанию. Для проверки
удобны CodePage и WebName,
а не EncodingName - оно зависит
от языка ОС. Пишут через
StreamWriter
в
MemoryStream.
Синтаксис
Encoding enc = reader.CurrentEncoding;
Пример
Давайте проверим CodePage у
читателя по умолчанию:
using System;
using System.IO;
class Program
{
static void Main()
{
using var ms = new MemoryStream();
using var reader = new StreamReader(ms);
int res = reader.CurrentEncoding.CodePage;
Console.WriteLine(res);
}
}
Результат выполнения кода:
65001
Пример
Давайте выведем WebName:
using System;
using System.IO;
class Program
{
static void Main()
{
using var ms = new MemoryStream();
using var reader = new StreamReader(ms);
string res = reader.CurrentEncoding.WebName;
Console.WriteLine(res);
}
}
Результат выполнения кода:
"utf-8"
Пример
Давайте явно зададим UTF-8 в конструкторе:
using System;
using System.IO;
using System.Text;
class Program
{
static void Main()
{
using var ms = new MemoryStream();
using var reader = new StreamReader(
ms, Encoding.UTF8);
bool res = reader.CurrentEncoding.CodePage == 65001;
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Смотрите также
-
StreamWriter,
который задаёт кодировку записи -
StreamReader,
класс, где объявлено свойство -
Stream,
байты под текстом -
MemoryStream,
буфер в примерах