Свойство System.Text.Encoding.Default
В этой статье приводятся дополнительные замечания к справочной документации по этому API.
Предупреждение
Разные компьютеры могут использовать разные кодировки в качестве значения по умолчанию, а кодировка по умолчанию может изменяться на одном компьютере. Если вы используете кодировку Encoding.Default для кодирования и декодировки данных, потоковых между компьютерами или полученных в разное время на одном компьютере, это может быть неправильно преобразовано. Кроме того, кодирование, возвращаемое свойством Default , использует резервный резерв для сопоставления неподдерживаемых символов с символами, поддерживаемыми кодовой страницей. По этим причинам не рекомендуется использовать кодировку по умолчанию. Чтобы убедиться, что кодированные байты декодированы правильно, следует использовать кодировку Юникода, например UTF8Encoding или UnicodeEncoding. Кроме того, можно использовать протокол более высокого уровня, чтобы убедиться, что тот же формат используется для кодирования и декодирования.
.NET Framework
В платформа .NET Framework Default свойство всегда получает активную кодовую страницу системы и создает объект, соответствующий Encoding ему. Активная кодовая страница может быть кодовой страницей ANSI, которая включает набор символов ASCII вместе с дополнительными символами, которые зависят от кодовой страницы. Так как все Default кодировки на основе кодовых страниц ANSI теряют данные, рекомендуется использовать кодировку Encoding.UTF8 вместо этого. UTF-8 часто идентичен в диапазоне U+00 до U+7F, но может кодировать символы за пределами диапазона ASCII без потери.
.NET Core
В .NET Core Default свойство всегда возвращает UTF8Encodingзначение . UTF-8 поддерживается во всех операционных системах (Windows, Linux и macOS), в которых выполняются приложения .NET Core.