C# 字符串中所有字符的ASCII值

C# 字符串中所有字符的ASCII值,c#,ascii,C#,Ascii,我正在尝试为字符串中的每个字符获取ascii值。在C#winforms中如何实现这一点 稍后,对于输出,您可以执行以下操作: string txt = "sentence"; int[] asciiArray = txt.Select(r => (int)r).ToArray(); 您将获得: foreach (var item in asciiArray) Console.WriteLine(item); 但请记住,这并不限于ASCII值,如果字符是Unicode,则将获得其

我正在尝试为字符串中的每个字符获取ascii值。在C#winforms中如何实现这一点

稍后,对于输出,您可以执行以下操作:

string txt = "sentence";
int[] asciiArray = txt.Select(r => (int)r).ToArray();
您将获得:

foreach (var item in asciiArray)
    Console.WriteLine(item);
但请记住,这并不限于ASCII值,如果字符是Unicode,则将获得其整数表示形式

您可以通过一个简单的
foreach
循环来实现这一点,如:

115
101
110
116
101
110
99
101
string txt = "sentence";
foreach (char c in txt)
    Console.WriteLine((int)c);
或类似以下循环的

115
101
110
116
101
110
99
101
string txt = "sentence";
foreach (char c in txt)
    Console.WriteLine((int)c);
string txt=“句子”;
for(int i=0;i
重要的一点是将其强制转换为
int
以获得int值,对于ASCII字符,int值将是
ASCII

C#字符串是UTF-16编码的Unicode,而不是ASCII。这意味着每个字符都是一个16位无符号值。特定的Unicode标志符号可以由1或2个这样的16位值表示

获取ASCII值的“正确”方法是使用ASCII编码类:

string txt = "sentence";
for (int i = 0; i < txt.Length; i++)
    Console.WriteLine((int)txt[i]);
由于ASCII仅覆盖范围0x00–0x7F(128个字符),因此该范围之外的任何代码点都将转换为0x3f(
“?”


考虑使用UTF-8或至少支持0x00-0xFF的编码(
encoding iso=encoding.GetEncoding(“iso-8859-1”)
),以防止数据丢失。

哦,我知道我是用for循环实现的before@Zeref,您可以使用类似于
foreach(txt中的char c)Console.WriteLine((int)c)的foreach来完成它
考虑到C#实际上并没有以ASCII编码存储字符串值(而且ASCII已经完全过时,没有现代软件使用它),很可能这不是您真正想要的——您可能想要的是字符代码或实际编码值。