Как записать специальные символы ASCII в строке .NET

Предположим, что я хочу использовать FS специального символа ASCII (0x1C) в строке .NET и затем смочь отформатировать массив байтов от той же самой строки со специальным символом, правильно представленным как единственный байт, как я сделал бы это? Я, может казаться, не получаю голову вокруг этого.

Спасибо за любую справку можно дать.

6
задан JimDaniel 27 May 2010 в 15:37
поделиться

3 ответа

Это скорее зависит от характера формата данных последовательного порта. Если данные состоят в основном из текстовых символов ASCII с вкраплениями случайных управляющих символов, то вы можете встроить их в строку, например

var data1 = Encoding.ASCII.GetBytes("Foo\x1CBar\x1CBaz");

Однако, если данные состоят из нескольких полей с разными типами данных, то класс BitConverter может быть более полезным, например

var data2 = new List<byte>();
// Add an int value
data2.AddRange(BitConverter.GetBytes(6));
// Add a control character
data2.Add(0x1C);
// Add an ASCII-encoded string value
data2.AddRange(Encoding.ASCII.GetBytes("Hello"));

Как отмечали другие, ASCII - не единственная строковая кодировка, которую вы можете использовать, но для последовательного порта это наиболее вероятно.

3
ответ дан 17 December 2019 в 00:04
поделиться

Вот как встроить его в строку:

"\x1C"

Строковое представление этого единственного символа. Предположим, вы хотите получить его как массив байтов:

byte[] bytes = Encoding.ASCII.GetBytes("\x1C");

И если вы хотите получить строку из массива байтов:

string s = Encoding.ASCII.GetString(bytes);

Имейте в виду, что в пространстве имен Encoding есть и другие кодировки, такие как UTF8, которые может работать лучше в зависимости от ваших потребностей - хотя, читая из последовательной линии, вы, вероятно, захотите использовать простой ASCII.

3
ответ дан 17 December 2019 в 00:04
поделиться

Вы должны посмотреть на класс ASCIIEncoding http://msdn.microsoft.com/en-us/library/system.text.asciiencoding.aspx Если вы хотите иметь дело с ASCII. Строки .Net - это Unicode (UCS2). Если вам нужна конкретная кодировка, вам необходимо использовать один из классов кодирования.

Вы можете встроить непечатаемый символ, экранировав его «Моя строка \ x1c»

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

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