2016-10-10 4 views
2

Я пытаюсь передать библиотеку классов, которая читает файлы из стандартной библиотеки классов в переносимую библиотеку классов (.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) я увидел, используя кодировку. Я понял, что это неправильный подход. Как я могу сделать конвертировать правильно?

+0

Я бы сказал, что «текущая кодовая страница» представляет собой концепцию Windows, которая может не иметь эквивалента во всех операционных системах, где поддерживается ASP.NET Core. Почему вам даже нужна «существующая устаревшая ANSI-кодовая страница сервера» в веб-приложении? – Heinzi

+0

практически не существует сценариев, где актуальна кодовая страница ОС * в любом случае * (вы должны быть явными при указании кодировок); что вам нужно здесь? –

+0

Я портирую библиотеку zip-compression. И в моем случае мне нужно преобразовать байт [] в строку правильно. В других q & a (например, http://stackoverflow.com/questions/11654562/how-convert-byte-array-to-string) я видел, используя Encoding. Я понял, что это неправильный подход. Как я могу сделать конвертировать правильно? –

ответ

0

общественного строка ConvertToString (байт [] данные, счетчик INT) {

возврата ASCIIEncoding.ASCII.GetString (данные, 0, количество); }