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

Jim*_*mbo 64 c# ascii escaping character-encoding

我试图解析c#中的文件,该文件具有由ascii字符代码0,1和2分隔的字段(字符串)数组(在Visual Basic 6中,您可以使用Chr(0)或Chr(1)等生成这些数据)

我知道对于c#中的字符代码0,您可以执行以下操作:

char separator = '\0';
Run Code Online (Sandbox Code Playgroud)

但这对字符代码1和2不起作用?

Jon*_*eet 130

两种选择:

char c1 = '\u0001';
char c1 = (char) 1;
Run Code Online (Sandbox Code Playgroud)

  • 可能对每个人都清楚 - 但只是要明确.在这个答案的第一个选项中,数字是hexidecmal中的字符代码.在第二个选项中,它是一个小数.显然1(十进制)= 1(十六进制),但对于更高的代码,它不是!例如:`char c ='\ u0021'`相当于`char c =(char)33`相当于`char c ='!'` (19认同)
  • 大声笑 - 让我感到沮丧,甚至给你更多积分乔恩,但无论如何,谢谢你的回答:P (6认同)
  • @ngoozeff:我出于各种原因不喜欢`\ x`,并且不建议使用它. (3认同)
  • 怎么样char sep ='\ x32'; ? (2认同)

Pav*_*yuk 34

你可以简单地写:

char c = (char) 2;
Run Code Online (Sandbox Code Playgroud)

要么

char c = Convert.ToChar(2);
Run Code Online (Sandbox Code Playgroud)

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

char[] characters = System.Text.Encoding.ASCII.GetChars(new byte[]{2});
char c = characters[0];
Run Code Online (Sandbox Code Playgroud)

  • 如果要转换超过 1 个字节或数组,这很好。 (2认同)

Car*_*das 13

值得注意的是,在C#中,char类型存储为Unicode UTF-16.

从ASCII等效整数到char

__CODE__

要么

__CODE__

从char到ASCII等效整数

__CODE__

文字必须是ASCII等价的.例如:

__CODE__

将打印

__CODE__

扩展的ASCII范围为0到255.

从默认的UTF-16文字到char

使用符号

__CODE__

使用Unicode代码

__CODE__

使用十六进制

__CODE__