1、先解释下两个名词,主要从百度百科中查询得到:
ASCII
(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。
http://baike.baidu.com/view/15482.htm?fromtitle=ascii%E7%A0%81&fromid=99077&type=syn
Unicode
(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
http://baike.baidu.com/view/40801.htm
2、将字母转换为ASCII码,可以利用如下代码
private void btnToASCII_Click( object sender , EventArgs e )
{
if( txtChar1.Text != string.Empty )
{
if( Encoding.GetEncoding( "unicode" ).GetBytes( new char[] { txtChar1.Text[ 0 ] } )[ 1 ] == 0 )
{
txtASCII1.Text = Encoding.GetEncoding( "unicode" ).GetBytes( txtChar1.Text )[0].ToString();
}
else
{
txtASCII1.Text = string.Empty;
MessageBox.Show( "请输入正确的字母" , "错误" );
}
}
}
关于Encoding,可以查看下面这段拆开写的代码解释
//使用Encoding的GetEncoding方法得到Encoding的对象
Encoding e= Encoding.GetEncoding( “unicode” );
//调用Encoding对象的GetBytes方法,此方法接受一个字符串或字符数组作为参数,最后返回字节数组对象
byte[] b=e .GetBytes( “Hehe” );
//字节数组的第0个索引来得到字符串中第一个字母的ASCII码
string str= b[ 0 ].ToString();
MessageBox.Show(str);
注意:
如果上述代码中Encoding.GetEncoding( “unicode” ).GetBytes( txtChar1.Text )[0].ToString()没有制定字节数字第几个字符,即写成Encoding.GetEncoding( “unicode” ).GetBytes( txtChar1.Text ).ToString(),则最后的输出结果为“System.Byte[]”
3、将ASCII码转换为数字,可以利用如下代码
private void btnToChar_Click( object sender , EventArgs e )
{
if( txtASCII2.Text != string.Empty )
{
int p;
if( int.TryParse(txtASCII2.Text,out p) )
{
txtChar2.Text = ((char)p).ToString();
}
else
{
txtChar2.Text = string.Empty;
MessageBox.Show( "请输入正确的数字" , "错误" );
}
}
}
这里相当于用了强制转换,于是我们也可以在字母转为ASCII码中也可以用强制转换试试:
private void btnToASCII2_Click( object sender , EventArgs e )
{
if( txtChar1.Text != string.Empty )
{
try
{
txtASCII1.Text = ( (int)txtChar1.Text[ 0 ] ).ToString();
}
catch
{
MessageBox.Show( "请输入正确的字母" , "错误" );
}
}
}
发现输出结果也是一样的,所以这种方法也是可以的。
如果你有什么建议和指导,欢迎留言!
交流学习,才能更快成长!