获取C#字符串中字符的ASCII值

Sha*_*fiz 21 c# string ascii character

考虑字符串:

string str="A C# string";
Run Code Online (Sandbox Code Playgroud)

使用C#在str中打印每个字符的ASCII值最有效的方法是什么.

Jor*_*oba 26

只需将每个字符转换为int:

for (int i = 0; i < str.length; i++)  
  Console.Write(((int)str[i]).ToString());
Run Code Online (Sandbox Code Playgroud)

  • @Joel:或者你可以使用“foreach (char c in str)”进行迭代。甚至不需要“ToCharArray”。 (2认同)

Joe*_*ton 12

这是一个替代方案,因为你不喜欢转换为int:

foreach(byte b in System.Text.Encoding.UTF8.GetBytes(str.ToCharArray()))
    Console.Write(b.ToString());
Run Code Online (Sandbox Code Playgroud)

  • @Joel:请直接向Unicode Consortium投诉UTF8.微软只是该联盟的一员; 你不妨说"直接向苹果,甲骨文,谷歌,IBM,微软,SAP,雅虎和印度联邦政府投诉".Microsoft只是Unicode标准化过程中众多重要参与者之一. (7认同)
  • @Petoj - 这是直接从有关转换为 ascii 的 MSDN 文档中提取的。“正确”的方法是调用“ConvertToUTF32()”,因为这是字符本身的真实编码。 (2认同)
  • @Petoj:从 0 到 127 的 Unicode 代码与七位 ASCII 代码**相同**。如果原始发布者想要包含没有 ASCII 编码的字符的字符串的“ASCII”数据,那么 OP 将不得不澄清这个问题,因为目前尚不清楚。 (2认同)