我正在尝试解析一个在C#中由ASCII字符代码0、1和2分隔的字段(字符串)数组的文件(在Visual Basic 6中,您可以通过使用Chr(0)或Chr(1)等来生成这些)。
我知道在C#中对于字符代码0,您可以执行以下操作:
char separator = '\0';
但是对于字符代码1和2,这并不起作用吗?
我正在尝试解析一个在C#中由ASCII字符代码0、1和2分隔的字段(字符串)数组的文件(在Visual Basic 6中,您可以通过使用Chr(0)或Chr(1)等来生成这些)。
我知道在C#中对于字符代码0,您可以执行以下操作:
char separator = '\0';
但是对于字符代码1和2,这并不起作用吗?
两种选择:
char c1 = '\u0001';
char c1 = (char) 1;
你可以简单地写:
char c = (char) 2;
或者char c = Convert.ToChar(2);
或者更复杂的选项,仅用于ASCII编码
char[] characters = System.Text.Encoding.ASCII.GetChars(new byte[]{2});
char c = characters[0];
需要注意的是,在C#中,char类型以Unicode UTF-16的形式存储。
char c = (char)88;
或者char c = Convert.ToChar(88)
int asciiCode = (int)'A';
字面值必须与ASCII字符等价。例如:
string str = "Xสีน้ำเงิน";
Console.WriteLine((int)str[0]);
Console.WriteLine((int)str[1]);
将打印
X
3626
Extended ASCII范围从0到255。
使用符号
char c = 'X';
使用Unicode编码
char c = '\u0058';
使用十六进制
char c = '\x0058';
\x
,原因有很多,并且不建议使用它。 - Jon Skeetchar c = '\u0021'
等同于char c = (char)33
等同于char c = '!'
。 - James S