C#如何将字符串转换成ASCII码

tanbaihua1010 2008-04-18 09:33:07
byte[] array = new byte[1];
array = System.Text.Encoding.ASCII.GetBytes(textBox1.Text.Trim());
int asciicode = (int)(array[0]);
textBox2.Text = Convert.ToString(asciicode);

这是一段将单个字母转换成ASCII码的代码,但是如果我想把一连串的字符串转换成ASCII码应该怎么做?反过来要这个ASCII码转换成字符串又应该怎么做?
...全文
5292 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
mr3 2010-10-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 viena 的回复:]
只不过字符串的长度是1而已,你把长度放开就可以了

C# code

byte[] array = System.Text.Encoding.ASCII.GetBytes(textBox1.Text.Trim());
[/Quote]


顶顶顶`````
haregei 2010-06-03
  • 打赏
  • 举报
回复
找到这里了,有用,谢谢!
Zeroing-X 2009-12-07
  • 打赏
  • 举报
回复
byte[] array = new byte[1];
array = System.Text.Encoding.ASCII.GetBytes(textBox1.Text.Trim());
int asciicode = (int)(array[0]);
textBox2.Text = Convert.ToString(asciicode);
中的
Encoding.ASCII.GetBytes(textBox1.Text.Trim());
就是转换字符串的
是你不会用啊
你可以这样用:
byte[] s = Encoding.ASCII.GetBytes(textBox1.Text);
foreach (byte a in s)
{
label1.Text += Convert.ToString(a,2)+ ",";
}
liupenglove 2009-07-01
  • 打赏
  • 举报
回复
不错正好有用
happydoleph 2009-04-26
  • 打赏
  • 举报
回复
补充说明一下ConvertStr:
/// <summary>
/// 进制转换
/// </summary>
/// <param name="value">待转换字符串</param>
/// <param name="fromBase">原始进制</param>
/// <param name="toBase">目标进制</param>
/// <returns>以目标进制表示的字符串</returns>
private string ConvertStr(string value, int fromBase, int toBase)
{
int intValue=Convert.ToInt32(value, fromBase);
return Convert.ToString(intValue, toBase);
}
happydoleph 2009-04-26
  • 打赏
  • 举报
回复
其实这样做是有局限性的,如果你直接让其隐式转换是可行的,但要显式转换,如当我要把一个由01组成的二进制流组成的文本转换成字符串时,上述方法是无效的。我的思路:每8位组成一个字节,生成ASCII码,然后转换成单个字符,然后回到字符串中。代码如下:
private string ConvertBinaryToStr(string binaryStr)
{
string result="";
for (int i = 0; i < binaryStr.Length; i+=8)
{
string src = binaryStr.Substring(i, 8);
string dest = ConvertStr(src, 2, 10);
char ch = (char)Convert.ToInt32(dest);
result += String.Format("{0}",ch);
}
return result;
}

MessageBox.Show(ConvertBinaryToStr("0100000101000011"));//应该显示"AC"
Re_start 2008-07-07
  • 打赏
  • 举报
回复
this.textBoxw.Text = "";
string get_str = textBoxz.Text;
string get_i="";
int i=0;

System.Text.ASCIIEncoding ASC = new ASCIIEncoding();

if (get_str.Length == 1)
{
int h = ASC.GetBytes(get_str)[0];
textBoxw.Text = h.ToString();
return;
}
else
{

foreach (char str in get_str.ToCharArray())
{
i = ASC.GetBytes(str.ToString())[0];
get_i +=i.ToString()+ ",";

}
}

this.textBoxw.Text = get_i.ToString();


上述是把一长串字符转成ascii码的实例。
你们上面表述的只是如何把ascii码转成单一字符而已。。

反过来如何把得到的一长串ascii码转换成字符串呢。
CSharpEx 2008-04-18
  • 打赏
  • 举报
回复
mark

tanbaihua1010 2008-04-18
  • 打赏
  • 举报
回复
dancingbit我正在和你在线聊天,你可以看到吗?
dancingbit 2008-04-18
  • 打赏
  • 举报
回复
大家都是在学习...

这里支持贴图的,不过好象要先传到网上某处,我没试过。
tanbaihua1010 2008-04-18
  • 打赏
  • 举报
回复
是的,dancingbit你说的这个Convert.ToInt32这个问题昨天我自己也提出过疑问,因为我是买了一本名叫《C#开发经验技巧宝典》里面的一个实例抄下来的。本人对C#还有好大的距离。以后还说老师多指教!

再向你请教一下。如果我想把经过你改编之后的效果图给你看应该怎么办?
dancingbit 2008-04-18
  • 打赏
  • 举报
回复
代码本身是可以用于字符串的,只是代码中限制了只提取第一个字母而已。
int asciicode = (int)(array[0]); //这里只取了第一个字母转换得来的ASCII码

array[0] = (byte)(Convert.ToInt32(textBox3.Text.Trim()));//这里直接认为textBox3中的字符串只是一个字符的ASCII码

BTW:Convert类其实有ToByte方法,不知道为什么要先转换为Int32?怕输入的数字过大?Int32一样会超的。
ericzhangbo1982111 2008-04-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 viena 的回复:]
引用楼主 tanbaihua1010 的帖子:
byte[] array = new byte[1];
array = System.Text.Encoding.ASCII.GetBytes(textBox1.Text.Trim());
int asciicode = (int)(array[0]);
textBox2.Text = Convert.ToString(asciicode);

这是一段将单个字母转换成ASCII码的代码,但是如果我想把一连串的字符串转换成ASCII码应该怎么做?反过来要这个ASCII码转换成字符串又应该怎么做?


这就是转字符串的,不是单个字母!
[/Quote]

...lz你想要什么?
比如你是说 A=65?
string v = "ABCDEFG";
byte[] b=System.Text.ASCIIEncoding.ASCII.GetBytes(v);
tanbaihua1010 2008-04-18
  • 打赏
  • 举报
回复
dancingbit和viena其实表达得都非常清楚,问题也得到的解决.非常感觉!以后还得多多向两位老师学习,还请多指教!
tanbaihua1010 2008-04-18
  • 打赏
  • 举报
回复
byte[] array = new byte[1];
array = System.Text.Encoding.ASCII.GetBytes(textBox1.Text.Trim());
int asciicode = (int)(array[0]);
textBox2.Text = Convert.ToString(asciicode);
这是一段将单个字母转换成ASCII码的代码
byte[] array = new byte[1];
array[0] = (byte)(Convert.ToInt32(textBox3.Text.Trim()));;

textBox4.Text = Convert.ToString(System.Text.Encoding.ASCII.GetString(array));
这是一段将ASCII码转换成单个字母的代码

上面两段代码我做在同一个窗口进行运行,当程序运行后,我输入"tanbaihua",程序通过前面一段代码转换成ASCII码:"116";同样,我输入"116",通过后面的代码,转换成字母"t",这样是不是说明这两个代码只是对单个的字母和ASCII之间进行转换?
dancingbit 2008-04-18
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 viena 的回复:]
完整的代码?
他已经讲得很清楚了
反向转换也只需要一句代码而已~
[/Quote]
:-)
dancingbit 2008-04-18
  • 打赏
  • 举报
回复

byte[] array = System.Text.Encoding.ASCII.GetBytes(textBox1.Text.Trim());
string str=null;
for(int i=0;i<array.Length;i++)
{
int asciicode = (int)(array[i]);
str += Convert.ToString(asciicode);
}
textBox2.Text=str;
viena 2008-04-18
  • 打赏
  • 举报
回复
完整的代码?
他已经讲得很清楚了
反向转换也只需要一句代码而已~
tanbaihua1010 2008-04-18
  • 打赏
  • 举报
回复
dancingbit你好!请问你可以把完整的代码写出来吗?我也是还没有入门,现在是通过实例来学习的.
viena 2008-04-18
  • 打赏
  • 举报
回复
只不过字符串的长度是1而已,你把长度放开就可以了

byte[] array = System.Text.Encoding.ASCII.GetBytes(textBox1.Text.Trim());
加载更多回复(5)

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧