字母與ASCII碼之間的轉換
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 是為了解決傳統的字元編碼方案的侷限而產生的,它為每種語言中的每個字元設定了統一併且唯一的二進位制編碼,以滿足跨語言、跨平臺進行文字轉換、處理的要求。
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( "請輸入正確的字母" , "錯誤" );
}
}
}
發現輸出結果也是一樣的,所以這種方法也是可以的。
如果你有什麼建議和指導,歡迎留言!
交流學習,才能更快成長!