C# 字符串中所有字符的ASCII值
我正在尝试为字符串中的每个字符获取ascii值。在C#winforms中如何实现这一点 稍后,对于输出,您可以执行以下操作: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,则将获得其
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已经完全过时,没有现代软件使用它),很可能这不是您真正想要的——您可能想要的是字符代码或实际编码值。