C# преобразовывают строку в ее байт [] эквивалентный

size_t рассматривается как тип для использования, несмотря на то, что он не был официально ратифицирован ни стандартами C, ни C ++.

Основанием для этого является то, что sizeof(values) будет такого типа (что соответствует в соответствии со стандартами C и C ++), и число элементов обязательно будет не больше этого, поскольку sizeof ] для объекта не менее 1.

7
задан redorkulated 12 February 2009 в 19:18
поделиться

5 ответов

Проблема с Вашим подходом для запуска с:

Мне нужно точное значение байтов без кодирования

...

Например, если значение строки (0xFF32)

Это немного похоже на рассмотрение живописи и высказывание, "Я хочу байты для того изображения без кодирования". Это не имеет смысла. Текст не является тем же как двоичными данными. После того как Вы понимаете, что, легко добраться до корня проблемы. То, что Вы действительно хотите, является содержанием файла как массив байтов. Это легко, потому что файлы являются двоичными данными! Вы не должны читать его как текст во-первых, если это не действительно текст. К счастью.NET делает это действительно легким:

byte[] fileC = File.ReadAllBytes(dialog.FileName);
17
ответ дан 6 December 2019 в 04:50
поделиться

Однако.. проблема, которую я имею, мне нужно точное значение байтов без кодирования просто чистого значения для каждого байта.

Затем используйте это:

byte[] dataB = System.Text.Encoding.Unicode.GetBytes(data);

Это возвращает байты, как сохранено внутренне строками.NET.

Но все это - вздор: строка всегда связывается с конкретным кодированием и нет никакого пути вокруг этого. Вышеупомянутое перестанет работать, например, если файл содержит недопустимые кодовые последовательности Unicode (который может произойти), или через нормализацию. Так как Вы, очевидно, не хотите a string, не читайте тот. Считайте файл как двоичные данные вместо этого.

13
ответ дан 6 December 2019 в 04:50
поделиться

Используйте BinaryReader.

4
ответ дан 6 December 2019 в 04:50
поделиться

Почему преобразовывают из строки вообще? Вы не могли только считать содержание файла непосредственно в байты?

byte[] fileC = File.ReadAllBytes(dialog.FileName);
3
ответ дан 6 December 2019 в 04:50
поделиться

Если Вы хотите байты, используйте Поток!

С какой стати Вы смешиваете с TextReader?

Править:

Согласно Вашему примеру, Вы открываете файл, поэтому просто используете FileStream.

1
ответ дан 6 December 2019 в 04:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: