Я пытаюсь передать библиотеку классов, которая читает файлы из стандартной библиотеки классов в переносимую библиотеку классов (.NET Standard, Version = v1.6), поддерживая ASP.NET Core.Как определить текущую страницу кода в переносимой библиотеке классов?
Мне нужно преобразовать часть байтового массива в строку.
С .NET Framework 4.5 Я мог бы обнаружить текущую кодовую страницу с
public string ConvertToString(byte[] data, int count)
{
int CurrentCodePage = Thread.CurrentThread.CurrentCulture.TextInfo.OEMCodePage;
return Encoding.GetEncoding(CurrentCodePage).GetString(data, 0, count);
}
Инструмент Анализ Assembly портативность дал мне совет: "Использовать System.Globalization.CultureInfo.CurrentCulture
." Но нет никакой информации о текущей кодовой странице.
Как я могу преобразовать байт [] в строку в текущем enconding?
Редактировать: Я портирую библиотеку zip-compression. И в моем случае мне нужно преобразовать байт [] в строку правильно. В другом q & a (как How convert byte array to string) я увидел, используя кодировку. Я понял, что это неправильный подход. Как я могу сделать конвертировать правильно?
Я бы сказал, что «текущая кодовая страница» представляет собой концепцию Windows, которая может не иметь эквивалента во всех операционных системах, где поддерживается ASP.NET Core. Почему вам даже нужна «существующая устаревшая ANSI-кодовая страница сервера» в веб-приложении? – Heinzi
практически не существует сценариев, где актуальна кодовая страница ОС * в любом случае * (вы должны быть явными при указании кодировок); что вам нужно здесь? –
Я портирую библиотеку zip-compression. И в моем случае мне нужно преобразовать байт [] в строку правильно. В других q & a (например, http://stackoverflow.com/questions/11654562/how-convert-byte-array-to-string) я видел, используя Encoding. Я понял, что это неправильный подход. Как я могу сделать конвертировать правильно? –