Почему я получаю \u0010, возвращаемый из Encoding.ASCII.GetString(), когда исходный массив байтов содержит простые байтыC#

Место общения программистов C#
Ответить
Anonymous
 Почему я получаю \u0010, возвращаемый из Encoding.ASCII.GetString(), когда исходный массив байтов содержит простые байты

Сообщение Anonymous »

Я пытаюсь использовать C# для чтения/записи некоторых старых файлов данных, которые были написаны с использованием Delphi и содержат только данные на основе ASCII. Некоторые данные представляют собой строки Pascal, длина которых, как вы, возможно, знаете, хранится в первом байте. .
Я открыл файлы с помощью FileStream, а затем использовал метод Read() для чтения данных в буфер (массив байтов). Я вижу, что массив байтов имеет значение 16 (десятичное) для первого байта, который я собираюсь прочитать из этого буфера.
Однако, когда я использую Encoding.ASCII.GetString(buffer, 18, 127) для чтения буфера в строку, результирующая строка получает строку '\u0010' в качестве первого символа, что все портит.
Любые мысли о том, как я могу избежать этот. Я бы предпочел не перекодировать с помощью StreamReader, чтобы добавить кодировку ANSII... все это основано на char[] и все равно может не работать.

Подробнее здесь: https://stackoverflow.com/questions/790 ... source-byt
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»