Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在.NET中将字符串转换为ASCII_C#_.net_Winforms - Fatal编程技术网

C# 如何在.NET中将字符串转换为ASCII

C# 如何在.NET中将字符串转换为ASCII,c#,.net,winforms,C#,.net,Winforms,我正在尝试将字符串转换为ASCII,并添加了一个转换为ASCII按钮和两个文本框: 我需要获得什么的示例: 输入text@gg.com我需要打电话:116 101 120 116 064 103 046 099 111 109 由于某种原因,我总是得到78-74-40-67-67-2E-63-6F-6D using System; using System.Collections.Generic; using System.Linq; using System.Web; using System

我正在尝试将字符串转换为ASCII,并添加了一个转换为ASCII按钮和两个文本框:

我需要获得什么的示例: 输入text@gg.com我需要打电话:116 101 120 116 064 103 046 099 111 109 由于某种原因,我总是得到78-74-40-67-67-2E-63-6F-6D

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace ascii
{
  public partial class WebForm1 : System.Web.UI.Page
  {

    protected void Page_Load(object sender, EventArgs e)
    {
    }

    protected void TextBox1_TextChanged(object sender, EventArgs e)
    {
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        foreach (char c in TextBox1.Text)
        {
             TextBox3.Text = Encoding.ASCII.GetString(new byte[] { });
        }
    }

    protected void TextBox3_TextChanged(object sender, EventArgs e)
    {
    }

  }
}

非常感谢你的帮助

假设要将字符转换为ASCII并以十进制显示其代码:

protected void Button1_Click(object sender, EventArgs e)
{
    TextBox3.Text = String.Join(" ", Encoding.ASCII.GetBytes(TextBox1.Text));
}

请注意,此代码首先将文本转换为ASCII,ASCII仅包含0到127之间的字符,因此它取决于“ASCII”的含义。如果只需要代码点的Unicode数字表示,请使用Douglas的答案。

假设字符串仅由ASCII字符组成,则可以使用:

protected void Button1_Click(object sender, EventArgs e)
{
    TextBox3.Text = string.Join(" ", TextBox1.Text.Select(c => (int)c));
}
如果字符串由非ASCII字符组成,则将返回其UTF-16代码单位。如果不希望这样做,则应包括一项检查:

    if (TextBox1.Text.Any(c => c > 127))
         TextBox3.Text = "Invalid string";

字符串已经使用Unicode表示,Unicode是ASCII的超集。你到底想达到什么目的?是否将字符显示为ASCII码序列?除非TextBox3.Text包含有效数字,否则int.Parse将失败。您需要进一步解释您正试图做什么,因为您只能将字符串的字符转换为ascii int。您的意思是:
int.Parse(c)
?输出应该是什么样子?您确实需要展示一个示例,说明您在这里试图做什么。您正在将数字解析为字符吗?像ABC一样656667=>ABC?谢谢,它给我带来了消息error BitConverter.ToString(Encoding.ASCII.GetString(TextBox1.Text));“无法从字符串转换为字节[]”@user3385217抱歉,已编辑。
位转换器的输出为十六进制。非常感谢!那么我得到这个的原因是什么:78-74-40-67-67-2E-63-6F-6D而不是这个:116 101 120 116 064 103 103 046 099 111 109?@user3385217——这是因为
位转换器的输出是十六进制值而不是整数。