Как получить символ из кода символа ASCII в c # - PullRequest
59 голосов
/ 05 августа 2010

Я пытаюсь проанализировать файл в c # с массивами полей (строк), разделенных кодами символов ascii 0, 1 и 2 (в Visual Basic 6 вы можете сгенерировать их с помощью Chr (0) или Chr (1) и т. Д.). )

Я знаю, что для кода символа 0 в c # вы можете сделать следующее:

char separator = '\0';

Но это не работает для кодов символов 1 и 2?

Ответы [ 3 ]

124 голосов
/ 05 августа 2010

Два варианта:

char c1 = '\u0001';
char c1 = (char) 1;
33 голосов
/ 05 августа 2010

Вы можете просто написать:

char c = (char) 2;

или

char c = Convert.ToChar(2);

или более сложный вариант только для кодировки ASCII

char[] characters = System.Text.Encoding.ASCII.GetChars(new byte[]{2});
char c = characters[0];
13 голосов
/ 09 июля 2016

Важно отметить, что в C # тип char хранится как Unicode UTF-16.

От ASCII-эквивалентного целого до char

char c = (char)88;

или

char c = Convert.ToChar(88)

От символа к ASCII эквивалентному целому числу

int asciiCode = (int)'A';

Литерал должен быть эквивалентным ASCII. Например:

string str = "Xสีน้ำเงิน";
Console.WriteLine((int)str[0]);
Console.WriteLine((int)str[1]);

напечатает

X
3626

Расширенный ASCII варьируется от 0 до 255.

От литерала по умолчанию UTF-16 к символу

Использование символа

char c = 'X';

Использование кода Unicode

char c = '\u0058';

Использование шестнадцатеричного

char c = '\x0058';
...