C# 如何从C中的ASCII字符代码中获取字符#

C# 如何从C中的ASCII字符代码中获取字符#,c#,character-encoding,ascii,escaping,C#,Character Encoding,Ascii,Escaping,我试图解析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; 或 或更复杂的选项,仅用于ASCII编码

我试图解析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;

或更复杂的选项,仅用于ASCII编码

char[] characters = System.Text.Encoding.ASCII.GetChars(new byte[]{2});
char c = characters[0];
需要注意的是,在C#中,char类型存储为Unicode UTF-16

从ASCII等效整数到字符 或

从字符到ASCII等效整数 文本必须是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';

那么char sep='\x32';呢@ngoozeff:出于各种原因,我不喜欢
\x
,也不建议使用它。LOL-给你更多的分数让我很沮丧,Jon,但无论如何还是要感谢你的回答:对每个人来说可能都很清楚-只是为了明确。在这个答案的第一个选项中,数字是十六进制的字符代码。在第二个选项中,它是一个小数。显然,1(十进制)=1(十六进制),但对于更高的代码,它不是!例如:
charc='\u0021'
相当于
charc=(char)33
相当于
charc='!'
@NaveedKhan:问题不是这样的。考虑到我们讨论的是两个小于128的特定值,后一个选项似乎不必要地冗长。Unicode是为匹配ASCII而设计的。如果您想转换超过1个字节或数组,它是很好的。
X
3626
char c = 'X';
char c = '\u0058';
char c = '\x0058';